Version Description
Download this release
Release Info
Developer | optimole |
Plugin | Image optimization & Lazy Load by Optimole |
Version | 2.1.2 |
Comparing to | |
See all releases |
Code changes from version 2.1.1 to 2.1.2
- CHANGELOG.md +18 -0
- README.md +27 -7
- assets/js/bundle.min.js +2 -2
- inc/admin.php +17 -7
- inc/api.php +3 -2
- inc/compatibilities/cache_enabler.php +29 -0
- inc/lazyload_replacer.php +2 -0
- inc/manager.php +11 -5
- inc/settings.php +3 -0
- optimole-wp.php +2 -2
- readme.txt +27 -7
- themeisle-hash.json +1 -1
- vendor/autoload.php +1 -1
- vendor/codeinwp/themeisle-sdk/CHANGELOG.md +116 -0
- vendor/codeinwp/themeisle-sdk/load.php +25 -2
- vendor/codeinwp/themeisle-sdk/src/Loader.php +10 -1
- vendor/codeinwp/themeisle-sdk/src/Modules/Dashboard_widget.php +27 -14
- vendor/codeinwp/themeisle-sdk/src/Modules/Endpoint.php +1 -1
- vendor/codeinwp/themeisle-sdk/src/Modules/Licenser.php +120 -43
- vendor/codeinwp/themeisle-sdk/src/Modules/Logger.php +2 -1
- vendor/codeinwp/themeisle-sdk/src/Modules/Notification.php +3 -0
- vendor/codeinwp/themeisle-sdk/src/Modules/Recommendation.php +374 -0
- vendor/codeinwp/themeisle-sdk/src/Modules/Uninstall_feedback.php +447 -325
- vendor/codeinwp/themeisle-sdk/src/Product.php +36 -1
- vendor/codeinwp/themeisle-sdk/start.php +2 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +1 -1
- vendor/composer/installed.json +6 -6
CHANGELOG.md
CHANGED
@@ -1,3 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
#### [Version 2.1.1](https://github.com/Codeinwp/optimole-wp/compare/v2.1.0...v2.1.1) (2019-07-22)
|
2 |
|
3 |
* **Bug Fixes**
|
1 |
+
#### [Version 2.1.2](https://github.com/Codeinwp/optimole-wp/compare/v2.1.1...v2.1.2) (2019-09-25)
|
2 |
+
|
3 |
+
* **Bug Fixes**
|
4 |
+
* adds preconnect hint for image domain and js library domain ([11b697d](https://github.com/Codeinwp/optimole-wp/commit/11b697d))
|
5 |
+
* compatibility with cache_enabler [#136](https://github.com/Codeinwp/optimole-wp/issues/136) ([483262f](https://github.com/Codeinwp/optimole-wp/commit/483262f))
|
6 |
+
* improve checking for editing context when the replacement should be off ([e7510f6](https://github.com/Codeinwp/optimole-wp/commit/e7510f6))
|
7 |
+
* lazyload query urls part of [#145](https://github.com/Codeinwp/optimole-wp/issues/145) ([a048f68](https://github.com/Codeinwp/optimole-wp/commit/a048f68))
|
8 |
+
* preload lazyload js file when lazyload setting is active ([828e1de](https://github.com/Codeinwp/optimole-wp/commit/828e1de))
|
9 |
+
* remove replacement on Divi theme builder ([86ab6d2](https://github.com/Codeinwp/optimole-wp/commit/86ab6d2))
|
10 |
+
* replacement was not working for urls with special chars ([48a4966](https://github.com/Codeinwp/optimole-wp/commit/48a4966))
|
11 |
+
* replacing url's with query strings without the query in the modified url [#141](https://github.com/Codeinwp/optimole-wp/issues/141) ([0025559](https://github.com/Codeinwp/optimole-wp/commit/0025559))
|
12 |
+
* replacing url's with regex in <a> tags [#141](https://github.com/Codeinwp/optimole-wp/issues/141) ([4b2264f](https://github.com/Codeinwp/optimole-wp/commit/4b2264f))
|
13 |
+
* resource hints condition check [skip release] ([a0f30e7](https://github.com/Codeinwp/optimole-wp/commit/a0f30e7))
|
14 |
+
|
15 |
+
* **Features**
|
16 |
+
* adds retina settings control which enable/disable serving of HiDPI images ([73c8712](https://github.com/Codeinwp/optimole-wp/commit/73c8712))
|
17 |
+
* adds visitors based plan integration ([ea07a94](https://github.com/Codeinwp/optimole-wp/commit/ea07a94))
|
18 |
+
|
19 |
#### [Version 2.1.1](https://github.com/Codeinwp/optimole-wp/compare/v2.1.0...v2.1.1) (2019-07-22)
|
20 |
|
21 |
* **Bug Fixes**
|
README.md
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
**License:** GPLv3
|
8 |
**License URI:** https://www.gnu.org/licenses/gpl-3.0.en.html
|
9 |
|
10 |
-
|
11 |
|
12 |
## Description ##
|
13 |
|
@@ -34,21 +34,21 @@ So, if you have been looking for one plugin that provides lazy loading with a CD
|
|
34 |
|
35 |
|
36 |
**How does it do all these great things?**
|
37 |
-
Optimole's format based optimization is handled in the cloud on a case-by-case basis. Once you have the plugin installed, Optimole will replace all of your image URLs with cloud-based URLs. We don't replace any images on your website.
|
38 |
When the image is requested, Optimole will apply the specific transformations required by the device and deliver it to your visitors. This means every image is perfectly sized for every device. The final result will be cached for a month to ensure ongoing fast delivery and more site speed.
|
39 |
|
40 |
**How many images can be optimized?**
|
41 |
-
With the basic plan, you will be able to optimize
|
42 |
Better yet. The free version is fully functional and includes all of the following great features.
|
43 |
|
44 |
**Format Based Optimization**
|
45 |
-
Our cloud-based transformation process means we can
|
46 |
|
47 |
**Image Optimization**
|
48 |
Our algorithms crunch the numbers to provide the best lossy or lossless optimization for the best-looking image at the smallest size.
|
49 |
|
50 |
**Exact Used Size**
|
51 |
-
Optimole will use just one image and resize it delivering a responsive image to fit perfectly on your visitors' devices. No more awkward guesses at potential screen widths.
|
52 |
|
53 |
**Retina Support**
|
54 |
Optimole can detect Retina screens and deliver an image with the perfect Digital Pixel Ratio (DPR).
|
@@ -57,13 +57,13 @@ Optimole can detect Retina screens and deliver an image with the perfect Digital
|
|
57 |
If you'd like to keep the most interesting part of an image; then you can enable smart cropping to help keep the image well sized without losing focus.
|
58 |
|
59 |
**No Content Shifting**
|
60 |
-
The lazy load option is perfectly sized for the container to provide a seamless viewing experience without any content shifting.
|
61 |
|
62 |
**Watermarks**
|
63 |
Who has time for adding watermarks? Optimole will do the hard work for you. Just set it up and pick your preferred location and Optimole will add the watermark to all of your future images.
|
64 |
|
65 |
**Downgrade Quality For Slower Connections**
|
66 |
-
Optimole provides an option to downgrade the image quality when it detects a slower network.
|
67 |
**Compatibility**
|
68 |
Optimole loves page builders and has unique tweaks to solve image replacements. It also has full compatibility with the new block editor in WordPress 5.0
|
69 |
|
@@ -88,6 +88,26 @@ Premium users will be able to optimize 10GB images per month with a 50GB viewing
|
|
88 |
|
89 |
## Changelog ##
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
#### [Version 2.1.1](https://github.com/Codeinwp/optimole-wp/compare/v2.1.0...v2.1.1) (2019-07-22)
|
92 |
|
93 |
* **Bug Fixes**
|
7 |
**License:** GPLv3
|
8 |
**License URI:** https://www.gnu.org/licenses/gpl-3.0.en.html
|
9 |
|
10 |
+
Automatically compress, optimize and serve scaled images along with next-gen WebP all from CloudFront CDN. Lazy load included ⚡
|
11 |
|
12 |
## Description ##
|
13 |
|
34 |
|
35 |
|
36 |
**How does it do all these great things?**
|
37 |
+
Optimole's format based optimization is handled in the cloud on a case-by-case basis. Once you have the plugin installed, Optimole will replace all of your image URLs with cloud-based URLs. We don't replace any images on your website, we compress images on the fly.
|
38 |
When the image is requested, Optimole will apply the specific transformations required by the device and deliver it to your visitors. This means every image is perfectly sized for every device. The final result will be cached for a month to ensure ongoing fast delivery and more site speed.
|
39 |
|
40 |
**How many images can be optimized?**
|
41 |
+
With the basic plan, you will be able to optimize unmetered number of images for up to 5k monthly active [users](https://docs.optimole.com/article/1134-how-optimole-counts-the-number-of-visitors). All delivered from 7 edge locations all over the world.
|
42 |
Better yet. The free version is fully functional and includes all of the following great features.
|
43 |
|
44 |
**Format Based Optimization**
|
45 |
+
Our cloud-based transformation process means we can optimize images based on the format as well as serve images in next-gen formats. If your visitor is using a WebP capable browser, then Optimole will convert to WebP the image and send it to their device.
|
46 |
|
47 |
**Image Optimization**
|
48 |
Our algorithms crunch the numbers to provide the best lossy or lossless optimization for the best-looking image at the smallest size.
|
49 |
|
50 |
**Exact Used Size**
|
51 |
+
Optimole will use just one image and resize it delivering a responsive image to fit perfectly on your visitors' devices. No more awkward guesses at potential screen widths. Serve scaled images instantly.
|
52 |
|
53 |
**Retina Support**
|
54 |
Optimole can detect Retina screens and deliver an image with the perfect Digital Pixel Ratio (DPR).
|
57 |
If you'd like to keep the most interesting part of an image; then you can enable smart cropping to help keep the image well sized without losing focus.
|
58 |
|
59 |
**No Content Shifting**
|
60 |
+
The lazy load option defer offscreen images and is perfectly sized for the container to provide a seamless viewing experience without any content shifting.
|
61 |
|
62 |
**Watermarks**
|
63 |
Who has time for adding watermarks? Optimole will do the hard work for you. Just set it up and pick your preferred location and Optimole will add the watermark to all of your future images.
|
64 |
|
65 |
**Downgrade Quality For Slower Connections**
|
66 |
+
Optimole provides an option to downgrade the image quality when it detects a slower network. Efficiently encode images by making up to 40% smaller with this neat feature to help visitors in a bottleneck.
|
67 |
**Compatibility**
|
68 |
Optimole loves page builders and has unique tweaks to solve image replacements. It also has full compatibility with the new block editor in WordPress 5.0
|
69 |
|
88 |
|
89 |
## Changelog ##
|
90 |
|
91 |
+
#### [Version 2.1.2](https://github.com/Codeinwp/optimole-wp/compare/v2.1.1...v2.1.2) (2019-09-25)
|
92 |
+
|
93 |
+
* **Bug Fixes**
|
94 |
+
* adds preconnect hint for image domain and js library domain ([11b697d](https://github.com/Codeinwp/optimole-wp/commit/11b697d))
|
95 |
+
* compatibility with cache_enabler [#136](https://github.com/Codeinwp/optimole-wp/issues/136) ([483262f](https://github.com/Codeinwp/optimole-wp/commit/483262f))
|
96 |
+
* improve checking for editing context when the replacement should be off ([e7510f6](https://github.com/Codeinwp/optimole-wp/commit/e7510f6))
|
97 |
+
* lazyload query urls part of [#145](https://github.com/Codeinwp/optimole-wp/issues/145) ([a048f68](https://github.com/Codeinwp/optimole-wp/commit/a048f68))
|
98 |
+
* preload lazyload js file when lazyload setting is active ([828e1de](https://github.com/Codeinwp/optimole-wp/commit/828e1de))
|
99 |
+
* remove replacement on Divi theme builder ([86ab6d2](https://github.com/Codeinwp/optimole-wp/commit/86ab6d2))
|
100 |
+
* replacement was not working for urls with special chars ([48a4966](https://github.com/Codeinwp/optimole-wp/commit/48a4966))
|
101 |
+
* replacing url's with query strings without the query in the modified url [#141](https://github.com/Codeinwp/optimole-wp/issues/141) ([0025559](https://github.com/Codeinwp/optimole-wp/commit/0025559))
|
102 |
+
* replacing url's with regex in <a> tags [#141](https://github.com/Codeinwp/optimole-wp/issues/141) ([4b2264f](https://github.com/Codeinwp/optimole-wp/commit/4b2264f))
|
103 |
+
* resource hints condition check [skip release] ([a0f30e7](https://github.com/Codeinwp/optimole-wp/commit/a0f30e7))
|
104 |
+
|
105 |
+
* **Features**
|
106 |
+
* adds retina settings control which enable/disable serving of HiDPI images ([73c8712](https://github.com/Codeinwp/optimole-wp/commit/73c8712))
|
107 |
+
* adds visitors based plan integration ([ea07a94](https://github.com/Codeinwp/optimole-wp/commit/ea07a94))
|
108 |
+
|
109 |
+
|
110 |
+
|
111 |
#### [Version 2.1.1](https://github.com/Codeinwp/optimole-wp/compare/v2.1.0...v2.1.1) (2019-07-22)
|
112 |
|
113 |
* **Bug Fixes**
|
assets/js/bundle.min.js
CHANGED
@@ -8,7 +8,7 @@ var _a=Object.freeze({}),Ca=Object.prototype.toString,za=h("slot,component",!0),
|
|
8 |
* https://github.com/pagekit/vue-resource
|
9 |
* Released under the MIT License.
|
10 |
*/
|
11 |
-
var st=2;o.reject=function(t){return new o(function(e,n){n(t)})},o.resolve=function(t){return new o(function(e,n){e(t)})},o.all=function(t){return new o(function(e,n){var i=0,a=[];0===t.length&&e(a);for(var r=0;r<t.length;r+=1)o.resolve(t[r]).then(function(n){return function(o){a[n]=o,(i+=1)===t.length&&e(a)}}(r),n)})},o.race=function(t){return new o(function(e,n){for(var i=0;i<t.length;i+=1)o.resolve(t[i]).then(e,n)})};var lt=o.prototype;lt.resolve=function(t){var e=this;if(e.state===st){if(t===e)throw new TypeError("Promise settled with itself.");var n=!1;try{var o=t&&t.then;if(null!==t&&"object"==typeof t&&"function"==typeof o)return void o.call(t,function(t){n||e.resolve(t),n=!0},function(t){n||e.reject(t),n=!0})}catch(t){return void(n||e.reject(t))}e.state=0,e.value=t,e.notify()}},lt.reject=function(t){var e=this;if(e.state===st){if(t===e)throw new TypeError("Promise settled with itself.");e.state=1,e.value=t,e.notify()}},lt.notify=function(){var t=this;l(function(){if(t.state!==st)for(;t.deferred.length;){var e=t.deferred.shift(),n=e[0],o=e[1],i=e[2],a=e[3];try{0===t.state?i("function"==typeof n?n.call(void 0,t.value):t.value):1===t.state&&("function"==typeof o?i(o.call(void 0,t.value)):a(t.value))}catch(t){a(t)}}})},lt.then=function(t,e){var n=this;return new o(function(o,i){n.deferred.push([t,e,o,i]),n.notify()})},lt.catch=function(t){return this.then(void 0,t)},"undefined"==typeof Promise&&(window.Promise=o),i.all=function(t,e){return new i(Promise.all(t),e)},i.resolve=function(t,e){return new i(Promise.resolve(t),e)},i.reject=function(t,e){return new i(Promise.reject(t),e)},i.race=function(t,e){return new i(Promise.race(t),e)};var pt=i.prototype;pt.bind=function(t){return this.context=t,this},pt.then=function(t,e){return t&&t.bind&&this.context&&(t=t.bind(this.context)),e&&e.bind&&this.context&&(e=e.bind(this.context)),new i(this.promise.then(t,e),this.context)},pt.catch=function(t){return t&&t.bind&&this.context&&(t=t.bind(this.context)),new i(this.promise.catch(t),this.context)},pt.finally=function(t){return this.then(function(e){return t.call(this),e},function(e){return t.call(this),Promise.reject(e)})};var ct,dt={},mt=dt.hasOwnProperty,ut=[],ft=ut.slice,ht=!1,bt="undefined"!=typeof window,vt=Array.isArray,gt=Object.assign||C;M.options={url:"",root:null,params:{}},M.transform={template:R,query:S,root:O},M.transforms=["template","query","root"],M.params=function(t){var e=[],n=encodeURIComponent;return e.add=function(t,e){f(e)&&(e=e()),null===e&&(e=""),this.push(n(t)+"="+n(e))},L(e,t),e.join("&").replace(/%20/g,"+")},M.parse=function(t){var e=document.createElement("a");return document.documentMode&&(e.href=t,t=e.href),e.href=t,{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",port:e.port,host:e.host,hostname:e.hostname,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):""}};var xt=bt&&"withCredentials"in new XMLHttpRequest,yt=function(t){var e=this;this.map={},w(t,function(t,n){return e.append(n,t)})};yt.prototype.has=function(t){return null!==Q(this.map,t)},yt.prototype.get=function(t){var e=this.map[Q(this.map,t)];return e?e.join():null},yt.prototype.getAll=function(t){return this.map[Q(this.map,t)]||[]},yt.prototype.set=function(t,e){this.map[tt(Q(this.map,t)||t)]=[p(e)]},yt.prototype.append=function(t,e){var n=this.map[Q(this.map,t)];n?n.push(p(e)):this.set(t,e)},yt.prototype.delete=function(t){delete this.map[Q(this.map,t)]},yt.prototype.deleteAll=function(){this.map={}},yt.prototype.forEach=function(t,e){var n=this;w(this.map,function(o,i){w(o,function(o){return t.call(e,o,i,n)})})};var wt=function(t,e){var n=e.url,o=e.headers,i=e.status,a=e.statusText;this.url=n,this.ok=i>=200&&i<300,this.status=i||0,this.statusText=a||"",this.headers=new yt(o),this.body=t,u(t)?this.bodyText=t:v(t)&&(this.bodyBlob=t,nt(t)&&(this.bodyText=et(t)))};wt.prototype.blob=function(){return x(this.bodyBlob)},wt.prototype.text=function(){return x(this.bodyText)},wt.prototype.json=function(){return x(this.text(),function(t){return JSON.parse(t)})},Object.defineProperty(wt.prototype,"data",{get:function(){return this.body},set:function(t){this.body=t}});var kt=function(t){this.body=null,this.params={},gt(this,t,{method:m(t.method||"GET")}),this.headers instanceof yt||(this.headers=new yt(this.headers))};kt.prototype.getUrl=function(){return M(this)},kt.prototype.getBody=function(){return this.body},kt.prototype.respondWith=function(t,e){return new wt(t,gt(e||{},{url:this.getUrl()}))};var _t={Accept:"application/json, text/plain, */*"},Ct={"Content-Type":"application/json;charset=utf-8"};ot.options={},ot.headers={put:Ct,post:Ct,patch:Ct,delete:Ct,common:_t,custom:{}},ot.interceptor={before:q,method:W,jsonp:V,json:U,form:B,header:K,cors:F},ot.interceptors=["before","method","jsonp","json","form","header","cors"],["get","delete","head","jsonp"].forEach(function(t){ot[t]=function(e,n){return this(gt(n||{},{url:e,method:t}))}}),["post","put","patch"].forEach(function(t){ot[t]=function(e,n,o){return this(gt(o||{},{url:e,method:t,body:n}))}}),it.actions={get:{method:"GET"},save:{method:"POST"},query:{method:"GET"},update:{method:"PUT"},remove:{method:"DELETE"},delete:{method:"DELETE"}},"undefined"!=typeof window&&window.Vue&&window.Vue.use(rt),e.default=rt},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}var i=n(2),a=o(i),r=n(11),s=o(r),l=n(96),p=o(l),c=n(101),d=o(c),m=n(102),u=o(m);a.default.use(u.default),a.default.use(d.default),window.addEventListener("load",function(){new a.default({el:"#optimole-app",store:p.default,components:{App:s.default}})})},function(t,e,n){(function(t){function o(t,e){this._id=t,this._clearFn=e}var i=void 0!==t&&t||"undefined"!=typeof self&&self||window,a=Function.prototype.apply;e.setTimeout=function(){return new o(a.call(setTimeout,i,arguments),clearTimeout)},e.setInterval=function(){return new o(a.call(setInterval,i,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(i,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(9),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(e,n(3))},function(t,e,n){(function(t,e){!function(t,n){"use strict";function o(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return p[l]=o,s(l),l++}function i(t){delete p[t]}function a(t){var e=t.callback,o=t.args;switch(o.length){case 0:e();break;case 1:e(o[0]);break;case 2:e(o[0],o[1]);break;case 3:e(o[0],o[1],o[2]);break;default:e.apply(n,o)}}function r(t){if(c)setTimeout(r,0,t);else{var e=p[t];if(e){c=!0;try{a(e)}finally{i(t),c=!1}}}}if(!t.setImmediate){var s,l=1,p={},c=!1,d=t.document,m=Object.getPrototypeOf&&Object.getPrototypeOf(t);m=m&&m.setTimeout?m:t,"[object process]"==={}.toString.call(t.process)?function(){s=function(t){e.nextTick(function(){r(t)})}}():function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?function(){var e="setImmediate$"+Math.random()+"$",n=function(n){n.source===t&&"string"==typeof n.data&&0===n.data.indexOf(e)&&r(+n.data.slice(e.length))};t.addEventListener?t.addEventListener("message",n,!1):t.attachEvent("onmessage",n),s=function(n){t.postMessage(e+n,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){r(t.data)},s=function(e){t.port2.postMessage(e)}}():d&&"onreadystatechange"in d.createElement("script")?function(){var t=d.documentElement;s=function(e){var n=d.createElement("script");n.onreadystatechange=function(){r(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():function(){s=function(t){setTimeout(r,0,t)}}(),m.setImmediate=o,m.clearImmediate=i}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n(3),n(10))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(t){if(c===setTimeout)return setTimeout(t,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(t,0);try{return c(t,0)}catch(e){try{return c.call(null,t,0)}catch(e){return c.call(this,t,0)}}}function a(t){if(d===clearTimeout)return clearTimeout(t);if((d===o||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(t);try{return d(t)}catch(e){try{return d.call(null,t)}catch(e){return d.call(this,t)}}}function r(){h&&u&&(h=!1,u.length?f=u.concat(f):b=-1,f.length&&s())}function s(){if(!h){var t=i(r);h=!0;for(var e=f.length;e;){for(u=f,f=[];++b<e;)u&&u[b].run();b=-1,e=f.length}u=null,h=!1,a(t)}}function l(t,e){this.fun=t,this.array=e}function p(){}var c,d,m=t.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:n}catch(t){c=n}try{d="function"==typeof clearTimeout?clearTimeout:o}catch(t){d=o}}();var u,f=[],h=!1,b=-1;m.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];f.push(new l(t,e)),1!==f.length||h||i(s)},l.prototype.run=function(){this.fun.apply(null,this.array)},m.title="browser",m.browser=!0,m.env={},m.argv=[],m.version="",m.versions={},m.on=p,m.addListener=p,m.once=p,m.off=p,m.removeListener=p,m.removeAllListeners=p,m.emit=p,m.prependListener=p,m.prependOnceListener=p,m.listeners=function(t){return[]},m.binding=function(t){throw new Error("process.binding is not supported")},m.cwd=function(){return"/"},m.chdir=function(t){throw new Error("process.chdir is not supported")},m.umask=function(){return 0}},function(t,e,n){var o,i;n(12),o=n(14),i=n(95),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(13);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,'#optimole-app {\n padding: 0 30px 0 20px;\n /*! bulma.io v0.7.4 | MIT License | github.com/jgthms/bulma */\n /*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ }\n\n@keyframes spinAround {\n from {\n transform: rotate(0deg); }\n to {\n transform: rotate(359deg); } }\n #optimole-app .delete, #optimole-app .modal-close, #optimole-app .is-unselectable, #optimole-app .button, #optimole-app .file, #optimole-app .breadcrumb, #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis, #optimole-app .tabs {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #optimole-app .select:not(.is-multiple):not(.is-loading)::after, #optimole-app .navbar-link:not(.is-arrowless)::after {\n border: 3px solid transparent;\n border-radius: 2px;\n border-right: 0;\n border-top: 0;\n content: " ";\n display: block;\n height: 0.625em;\n margin-top: -0.4375em;\n pointer-events: none;\n position: absolute;\n top: 50%;\n transform: rotate(-45deg);\n transform-origin: center;\n width: 0.625em; }\n #optimole-app .box:not(:last-child), #optimole-app .content:not(:last-child), #optimole-app .notification:not(:last-child), #optimole-app .progress:not(:last-child), #optimole-app .table:not(:last-child), #optimole-app .table-container:not(:last-child), #optimole-app .title:not(:last-child),\n #optimole-app .subtitle:not(:last-child), #optimole-app .block:not(:last-child), #optimole-app .highlight:not(:last-child), #optimole-app .breadcrumb:not(:last-child), #optimole-app .level:not(:last-child), #optimole-app .list:not(:last-child), #optimole-app .message:not(:last-child), #optimole-app .tabs:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .delete, #optimole-app .modal-close {\n -moz-appearance: none;\n -webkit-appearance: none;\n background-color: rgba(10, 10, 10, 0.2);\n border: none;\n border-radius: 290486px;\n cursor: pointer;\n pointer-events: auto;\n display: inline-block;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n font-size: 0;\n height: 20px;\n max-height: 20px;\n max-width: 20px;\n min-height: 20px;\n min-width: 20px;\n outline: none;\n position: relative;\n vertical-align: top;\n width: 20px; }\n #optimole-app .delete::before, #optimole-app .modal-close::before, #optimole-app .delete::after, #optimole-app .modal-close::after {\n background-color: white;\n content: "";\n display: block;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform-origin: center center; }\n #optimole-app .delete::before, #optimole-app .modal-close::before {\n height: 2px;\n width: 50%; }\n #optimole-app .delete::after, #optimole-app .modal-close::after {\n height: 50%;\n width: 2px; }\n #optimole-app .delete:hover, #optimole-app .modal-close:hover, #optimole-app .delete:focus, #optimole-app .modal-close:focus {\n background-color: rgba(10, 10, 10, 0.3); }\n #optimole-app .delete:active, #optimole-app .modal-close:active {\n background-color: rgba(10, 10, 10, 0.4); }\n #optimole-app .is-small.delete, #optimole-app .is-small.modal-close {\n height: 16px;\n max-height: 16px;\n max-width: 16px;\n min-height: 16px;\n min-width: 16px;\n width: 16px; }\n #optimole-app .is-medium.delete, #optimole-app .is-medium.modal-close {\n height: 24px;\n max-height: 24px;\n max-width: 24px;\n min-height: 24px;\n min-width: 24px;\n width: 24px; }\n #optimole-app .is-large.delete, #optimole-app .is-large.modal-close {\n height: 32px;\n max-height: 32px;\n max-width: 32px;\n min-height: 32px;\n min-width: 32px;\n width: 32px; }\n #optimole-app .button.is-loading::after, #optimole-app .select.is-loading::after, #optimole-app .control.is-loading::after, #optimole-app .loader {\n animation: spinAround 500ms infinite linear;\n border: 2px solid #dbdbdb;\n border-radius: 290486px;\n border-right-color: transparent;\n border-top-color: transparent;\n content: "";\n display: block;\n height: 1em;\n position: relative;\n width: 1em; }\n #optimole-app .is-overlay, #optimole-app .image.is-square img,\n #optimole-app .image.is-square .has-ratio, #optimole-app .image.is-1by1 img,\n #optimole-app .image.is-1by1 .has-ratio, #optimole-app .image.is-5by4 img,\n #optimole-app .image.is-5by4 .has-ratio, #optimole-app .image.is-4by3 img,\n #optimole-app .image.is-4by3 .has-ratio, #optimole-app .image.is-3by2 img,\n #optimole-app .image.is-3by2 .has-ratio, #optimole-app .image.is-5by3 img,\n #optimole-app .image.is-5by3 .has-ratio, #optimole-app .image.is-16by9 img,\n #optimole-app .image.is-16by9 .has-ratio, #optimole-app .image.is-2by1 img,\n #optimole-app .image.is-2by1 .has-ratio, #optimole-app .image.is-3by1 img,\n #optimole-app .image.is-3by1 .has-ratio, #optimole-app .image.is-4by5 img,\n #optimole-app .image.is-4by5 .has-ratio, #optimole-app .image.is-3by4 img,\n #optimole-app .image.is-3by4 .has-ratio, #optimole-app .image.is-2by3 img,\n #optimole-app .image.is-2by3 .has-ratio, #optimole-app .image.is-3by5 img,\n #optimole-app .image.is-3by5 .has-ratio, #optimole-app .image.is-9by16 img,\n #optimole-app .image.is-9by16 .has-ratio, #optimole-app .image.is-1by2 img,\n #optimole-app .image.is-1by2 .has-ratio, #optimole-app .image.is-1by3 img,\n #optimole-app .image.is-1by3 .has-ratio, #optimole-app .modal, #optimole-app .modal-background, #optimole-app .hero-video {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0; }\n #optimole-app .button, #optimole-app .input,\n #optimole-app .textarea, #optimole-app .select select, #optimole-app .file-cta,\n #optimole-app .file-name, #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis {\n -moz-appearance: none;\n -webkit-appearance: none;\n -ms-flex-align: center;\n align-items: center;\n border: 1px solid transparent;\n border-radius: 4px;\n box-shadow: none;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 1rem;\n height: 2.25em;\n -ms-flex-pack: start;\n justify-content: flex-start;\n line-height: 1.5;\n padding-bottom: calc(0.375em - 1px);\n padding-left: calc(0.625em - 1px);\n padding-right: calc(0.625em - 1px);\n padding-top: calc(0.375em - 1px);\n position: relative;\n vertical-align: top; }\n #optimole-app .button:focus, #optimole-app .input:focus,\n #optimole-app .textarea:focus, #optimole-app .select select:focus, #optimole-app .file-cta:focus,\n #optimole-app .file-name:focus, #optimole-app .pagination-previous:focus,\n #optimole-app .pagination-next:focus,\n #optimole-app .pagination-link:focus,\n #optimole-app .pagination-ellipsis:focus, #optimole-app .is-focused.button, #optimole-app .is-focused.input,\n #optimole-app .is-focused.textarea, #optimole-app .select select.is-focused, #optimole-app .is-focused.file-cta,\n #optimole-app .is-focused.file-name, #optimole-app .is-focused.pagination-previous,\n #optimole-app .is-focused.pagination-next,\n #optimole-app .is-focused.pagination-link,\n #optimole-app .is-focused.pagination-ellipsis, #optimole-app .button:active, #optimole-app .input:active,\n #optimole-app .textarea:active, #optimole-app .select select:active, #optimole-app .file-cta:active,\n #optimole-app .file-name:active, #optimole-app .pagination-previous:active,\n #optimole-app .pagination-next:active,\n #optimole-app .pagination-link:active,\n #optimole-app .pagination-ellipsis:active, #optimole-app .is-active.button, #optimole-app .is-active.input,\n #optimole-app .is-active.textarea, #optimole-app .select select.is-active, #optimole-app .is-active.file-cta,\n #optimole-app .is-active.file-name, #optimole-app .is-active.pagination-previous,\n #optimole-app .is-active.pagination-next,\n #optimole-app .is-active.pagination-link,\n #optimole-app .is-active.pagination-ellipsis {\n outline: none; }\n #optimole-app .button[disabled], #optimole-app .input[disabled],\n #optimole-app .textarea[disabled], #optimole-app .select select[disabled], #optimole-app .file-cta[disabled],\n #optimole-app .file-name[disabled], #optimole-app .pagination-previous[disabled],\n #optimole-app .pagination-next[disabled],\n #optimole-app .pagination-link[disabled],\n #optimole-app .pagination-ellipsis[disabled],\n fieldset[disabled] #optimole-app .button,\n fieldset[disabled] #optimole-app .input,\n fieldset[disabled] #optimole-app .textarea,\n fieldset[disabled] #optimole-app .select select,\n fieldset[disabled] #optimole-app .file-cta,\n fieldset[disabled] #optimole-app .file-name,\n fieldset[disabled] #optimole-app .pagination-previous,\n fieldset[disabled] #optimole-app .pagination-next,\n fieldset[disabled] #optimole-app .pagination-link,\n fieldset[disabled] #optimole-app .pagination-ellipsis {\n cursor: not-allowed; }\n #optimole-app html,\n #optimole-app body,\n #optimole-app p,\n #optimole-app ol,\n #optimole-app ul,\n #optimole-app li,\n #optimole-app dl,\n #optimole-app dt,\n #optimole-app dd,\n #optimole-app blockquote,\n #optimole-app figure,\n #optimole-app fieldset,\n #optimole-app legend,\n #optimole-app textarea,\n #optimole-app pre,\n #optimole-app iframe,\n #optimole-app hr,\n #optimole-app h1,\n #optimole-app h2,\n #optimole-app h3,\n #optimole-app h4,\n #optimole-app h5,\n #optimole-app h6 {\n margin: 0;\n padding: 0; }\n #optimole-app h1,\n #optimole-app h2,\n #optimole-app h3,\n #optimole-app h4,\n #optimole-app h5,\n #optimole-app h6 {\n font-size: 100%;\n font-weight: normal; }\n #optimole-app ul {\n list-style: none; }\n #optimole-app button,\n #optimole-app input,\n #optimole-app select,\n #optimole-app textarea {\n margin: 0; }\n #optimole-app html {\n box-sizing: border-box; }\n #optimole-app *, #optimole-app *::before, #optimole-app *::after {\n box-sizing: inherit; }\n #optimole-app img,\n #optimole-app embed,\n #optimole-app iframe,\n #optimole-app object,\n #optimole-app video {\n height: auto;\n max-width: 100%; }\n #optimole-app audio {\n max-width: 100%; }\n #optimole-app iframe {\n border: 0; }\n #optimole-app table {\n border-collapse: collapse;\n border-spacing: 0; }\n #optimole-app td,\n #optimole-app th {\n padding: 0;\n text-align: left; }\n #optimole-app html {\n background-color: white;\n font-size: 16px;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n min-width: 300px;\n overflow-x: hidden;\n overflow-y: scroll;\n text-rendering: optimizeLegibility;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n text-size-adjust: 100%; }\n #optimole-app article,\n #optimole-app aside,\n #optimole-app figure,\n #optimole-app footer,\n #optimole-app header,\n #optimole-app hgroup,\n #optimole-app section {\n display: block; }\n #optimole-app body,\n #optimole-app button,\n #optimole-app input,\n #optimole-app select,\n #optimole-app textarea {\n font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }\n #optimole-app code,\n #optimole-app pre {\n -moz-osx-font-smoothing: auto;\n -webkit-font-smoothing: auto;\n font-family: monospace; }\n #optimole-app body {\n color: #4a4a4a;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5; }\n #optimole-app a {\n color: #3273dc;\n cursor: pointer;\n text-decoration: none; }\n #optimole-app a strong {\n color: currentColor; }\n #optimole-app a:hover {\n color: #363636; }\n #optimole-app code {\n background-color: whitesmoke;\n color: #ff3860;\n font-size: 0.875em;\n font-weight: normal;\n padding: 0.25em 0.5em 0.25em; }\n #optimole-app hr {\n background-color: whitesmoke;\n border: none;\n display: block;\n height: 2px;\n margin: 1.5rem 0; }\n #optimole-app img {\n height: auto;\n max-width: 100%; }\n #optimole-app input[type="checkbox"],\n #optimole-app input[type="radio"] {\n vertical-align: baseline; }\n #optimole-app small {\n font-size: 0.875em; }\n #optimole-app span {\n font-style: inherit;\n font-weight: inherit; }\n #optimole-app strong {\n color: #363636;\n font-weight: 700; }\n #optimole-app fieldset {\n border: none; }\n #optimole-app pre {\n -webkit-overflow-scrolling: touch;\n background-color: whitesmoke;\n color: #4a4a4a;\n font-size: 0.875em;\n overflow-x: auto;\n padding: 1.25rem 1.5rem;\n white-space: pre;\n word-wrap: normal; }\n #optimole-app pre code {\n background-color: transparent;\n color: currentColor;\n font-size: 1em;\n padding: 0; }\n #optimole-app table td,\n #optimole-app table th {\n text-align: left;\n vertical-align: top; }\n #optimole-app table th {\n color: #363636; }\n #optimole-app .is-clearfix::after {\n clear: both;\n content: " ";\n display: table; }\n #optimole-app .is-pulled-left {\n float: left !important; }\n #optimole-app .is-pulled-right {\n float: right !important; }\n #optimole-app .is-clipped {\n overflow: hidden !important; }\n #optimole-app .is-size-1 {\n font-size: 3rem !important; }\n #optimole-app .is-size-2 {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3 {\n font-size: 2rem !important; }\n #optimole-app .is-size-4 {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5 {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6 {\n font-size: 1rem !important; }\n #optimole-app .is-size-7 {\n font-size: 0.75rem !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-size-1-mobile {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-mobile {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-mobile {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-mobile {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-mobile {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-mobile {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-mobile {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-size-1-tablet {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-tablet {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-tablet {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-tablet {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-tablet {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-tablet {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-tablet {\n font-size: 0.75rem !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-size-1-touch {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-touch {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-touch {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-touch {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-touch {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-touch {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-touch {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-size-1-desktop {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-desktop {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-desktop {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-desktop {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-desktop {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-desktop {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-desktop {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-size-1-widescreen {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-widescreen {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-widescreen {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-widescreen {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-widescreen {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-widescreen {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-widescreen {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-size-1-fullhd {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-fullhd {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-fullhd {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-fullhd {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-fullhd {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-fullhd {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-fullhd {\n font-size: 0.75rem !important; } }\n #optimole-app .has-text-centered {\n text-align: center !important; }\n #optimole-app .has-text-justified {\n text-align: justify !important; }\n #optimole-app .has-text-left {\n text-align: left !important; }\n #optimole-app .has-text-right {\n text-align: right !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-centered-mobile {\n text-align: center !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-centered-tablet {\n text-align: center !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-centered-tablet-only {\n text-align: center !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-centered-touch {\n text-align: center !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-centered-desktop {\n text-align: center !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-centered-desktop-only {\n text-align: center !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-centered-widescreen {\n text-align: center !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-centered-widescreen-only {\n text-align: center !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-centered-fullhd {\n text-align: center !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-justified-mobile {\n text-align: justify !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-justified-tablet {\n text-align: justify !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-justified-tablet-only {\n text-align: justify !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-justified-touch {\n text-align: justify !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-justified-desktop {\n text-align: justify !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-justified-desktop-only {\n text-align: justify !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-justified-widescreen {\n text-align: justify !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-justified-widescreen-only {\n text-align: justify !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-justified-fullhd {\n text-align: justify !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-left-mobile {\n text-align: left !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-left-tablet {\n text-align: left !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-left-tablet-only {\n text-align: left !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-left-touch {\n text-align: left !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-left-desktop {\n text-align: left !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-left-desktop-only {\n text-align: left !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-left-widescreen {\n text-align: left !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-left-widescreen-only {\n text-align: left !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-left-fullhd {\n text-align: left !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-right-mobile {\n text-align: right !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-right-tablet {\n text-align: right !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-right-tablet-only {\n text-align: right !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-right-touch {\n text-align: right !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-right-desktop {\n text-align: right !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-right-desktop-only {\n text-align: right !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-right-widescreen {\n text-align: right !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-right-widescreen-only {\n text-align: right !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-right-fullhd {\n text-align: right !important; } }\n #optimole-app .is-capitalized {\n text-transform: capitalize !important; }\n #optimole-app .is-lowercase {\n text-transform: lowercase !important; }\n #optimole-app .is-uppercase {\n text-transform: uppercase !important; }\n #optimole-app .is-italic {\n font-style: italic !important; }\n #optimole-app .has-text-white {\n color: white !important; }\n #optimole-app a.has-text-white:hover, #optimole-app a.has-text-white:focus {\n color: #e6e6e6 !important; }\n #optimole-app .has-background-white {\n background-color: white !important; }\n #optimole-app .has-text-black {\n color: #0a0a0a !important; }\n #optimole-app a.has-text-black:hover, #optimole-app a.has-text-black:focus {\n color: black !important; }\n #optimole-app .has-background-black {\n background-color: #0a0a0a !important; }\n #optimole-app .has-text-light {\n color: whitesmoke !important; }\n #optimole-app a.has-text-light:hover, #optimole-app a.has-text-light:focus {\n color: #dbdbdb !important; }\n #optimole-app .has-background-light {\n background-color: whitesmoke !important; }\n #optimole-app .has-text-dark {\n color: #363636 !important; }\n #optimole-app a.has-text-dark:hover, #optimole-app a.has-text-dark:focus {\n color: #1c1c1c !important; }\n #optimole-app .has-background-dark {\n background-color: #363636 !important; }\n #optimole-app .has-text-primary {\n color: #EF686B !important; }\n #optimole-app a.has-text-primary:hover, #optimole-app a.has-text-primary:focus {\n color: #ea3a3e !important; }\n #optimole-app .has-background-primary {\n background-color: #EF686B !important; }\n #optimole-app .has-text-link {\n color: #3273dc !important; }\n #optimole-app a.has-text-link:hover, #optimole-app a.has-text-link:focus {\n color: #205bbc !important; }\n #optimole-app .has-background-link {\n background-color: #3273dc !important; }\n #optimole-app .has-text-info {\n color: #5180C1 !important; }\n #optimole-app a.has-text-info:hover, #optimole-app a.has-text-info:focus {\n color: #3b67a4 !important; }\n #optimole-app .has-background-info {\n background-color: #5180C1 !important; }\n #optimole-app .has-text-success {\n color: #34a85e !important; }\n #optimole-app a.has-text-success:hover, #optimole-app a.has-text-success:focus {\n color: #288148 !important; }\n #optimole-app .has-background-success {\n background-color: #34a85e !important; }\n #optimole-app .has-text-warning {\n color: #ffdd57 !important; }\n #optimole-app a.has-text-warning:hover, #optimole-app a.has-text-warning:focus {\n color: #ffd324 !important; }\n #optimole-app .has-background-warning {\n background-color: #ffdd57 !important; }\n #optimole-app .has-text-danger {\n color: #D54222 !important; }\n #optimole-app a.has-text-danger:hover, #optimole-app a.has-text-danger:focus {\n color: #a9341b !important; }\n #optimole-app .has-background-danger {\n background-color: #D54222 !important; }\n #optimole-app .has-text-black-bis {\n color: #121212 !important; }\n #optimole-app .has-background-black-bis {\n background-color: #121212 !important; }\n #optimole-app .has-text-black-ter {\n color: #242424 !important; }\n #optimole-app .has-background-black-ter {\n background-color: #242424 !important; }\n #optimole-app .has-text-grey-darker {\n color: #363636 !important; }\n #optimole-app .has-background-grey-darker {\n background-color: #363636 !important; }\n #optimole-app .has-text-grey-dark {\n color: #4a4a4a !important; }\n #optimole-app .has-background-grey-dark {\n background-color: #4a4a4a !important; }\n #optimole-app .has-text-grey {\n color: #7a7a7a !important; }\n #optimole-app .has-background-grey {\n background-color: #7a7a7a !important; }\n #optimole-app .has-text-grey-light {\n color: #b5b5b5 !important; }\n #optimole-app .has-background-grey-light {\n background-color: #b5b5b5 !important; }\n #optimole-app .has-text-grey-lighter {\n color: #dbdbdb !important; }\n #optimole-app .has-background-grey-lighter {\n background-color: #dbdbdb !important; }\n #optimole-app .has-text-white-ter {\n color: whitesmoke !important; }\n #optimole-app .has-background-white-ter {\n background-color: whitesmoke !important; }\n #optimole-app .has-text-white-bis {\n color: #fafafa !important; }\n #optimole-app .has-background-white-bis {\n background-color: #fafafa !important; }\n #optimole-app .has-text-weight-light {\n font-weight: 300 !important; }\n #optimole-app .has-text-weight-normal {\n font-weight: 400 !important; }\n #optimole-app .has-text-weight-semibold {\n font-weight: 600 !important; }\n #optimole-app .has-text-weight-bold {\n font-weight: 700 !important; }\n #optimole-app .is-family-primary {\n font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }\n #optimole-app .is-family-secondary {\n font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }\n #optimole-app .is-family-sans-serif {\n font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }\n #optimole-app .is-family-monospace {\n font-family: monospace !important; }\n #optimole-app .is-family-code {\n font-family: monospace !important; }\n #optimole-app .is-block {\n display: block !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-block-mobile {\n display: block !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-block-tablet {\n display: block !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-block-tablet-only {\n display: block !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-block-touch {\n display: block !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-block-desktop {\n display: block !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-block-desktop-only {\n display: block !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-block-widescreen {\n display: block !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-block-widescreen-only {\n display: block !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-block-fullhd {\n display: block !important; } }\n #optimole-app .is-flex {\n display: -ms-flexbox !important;\n display: flex !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-flex-mobile {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-flex-tablet {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-flex-tablet-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-flex-touch {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-flex-desktop {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-flex-desktop-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-flex-widescreen {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-flex-widescreen-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-flex-fullhd {\n display: -ms-flexbox !important;\n display: flex !important; } }\n #optimole-app .is-inline {\n display: inline !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-mobile {\n display: inline !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-tablet {\n display: inline !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-tablet-only {\n display: inline !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-touch {\n display: inline !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-desktop {\n display: inline !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-desktop-only {\n display: inline !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-widescreen {\n display: inline !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-widescreen-only {\n display: inline !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-fullhd {\n display: inline !important; } }\n #optimole-app .is-inline-block {\n display: inline-block !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-block-mobile {\n display: inline-block !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-block-tablet {\n display: inline-block !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-block-tablet-only {\n display: inline-block !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-block-touch {\n display: inline-block !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-block-desktop {\n display: inline-block !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-block-desktop-only {\n display: inline-block !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-block-widescreen {\n display: inline-block !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-block-widescreen-only {\n display: inline-block !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-block-fullhd {\n display: inline-block !important; } }\n #optimole-app .is-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-flex-mobile {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-flex-tablet {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-flex-tablet-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-flex-touch {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-flex-desktop {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-flex-desktop-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-flex-widescreen {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-flex-widescreen-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-flex-fullhd {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n #optimole-app .is-hidden {\n display: none !important; }\n #optimole-app .is-sr-only {\n border: none !important;\n clip: rect(0, 0, 0, 0) !important;\n height: 0.01em !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n white-space: nowrap !important;\n width: 0.01em !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-hidden-mobile {\n display: none !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-hidden-tablet {\n display: none !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-hidden-tablet-only {\n display: none !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-hidden-touch {\n display: none !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-hidden-desktop {\n display: none !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-hidden-desktop-only {\n display: none !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-hidden-widescreen {\n display: none !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-hidden-widescreen-only {\n display: none !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-hidden-fullhd {\n display: none !important; } }\n #optimole-app .is-invisible {\n visibility: hidden !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-invisible-mobile {\n visibility: hidden !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-invisible-tablet {\n visibility: hidden !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-invisible-tablet-only {\n visibility: hidden !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-invisible-touch {\n visibility: hidden !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-invisible-desktop {\n visibility: hidden !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-invisible-desktop-only {\n visibility: hidden !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-invisible-widescreen {\n visibility: hidden !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-invisible-widescreen-only {\n visibility: hidden !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-invisible-fullhd {\n visibility: hidden !important; } }\n #optimole-app .is-marginless {\n margin: 0 !important; }\n #optimole-app .is-paddingless {\n padding: 0 !important; }\n #optimole-app .is-radiusless {\n border-radius: 0 !important; }\n #optimole-app .is-shadowless {\n box-shadow: none !important; }\n #optimole-app .box {\n background-color: white;\n border-radius: 6px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n color: #4a4a4a;\n display: block;\n padding: 1.25rem; }\n #optimole-app a.box:hover, #optimole-app a.box:focus {\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #3273dc; }\n #optimole-app a.box:active {\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #3273dc; }\n #optimole-app .button {\n background-color: white;\n border-color: #dbdbdb;\n border-width: 1px;\n color: #363636;\n cursor: pointer;\n -ms-flex-pack: center;\n justify-content: center;\n padding-bottom: calc(0.375em - 1px);\n padding-left: 0.75em;\n padding-right: 0.75em;\n padding-top: calc(0.375em - 1px);\n text-align: center;\n white-space: nowrap; }\n #optimole-app .button strong {\n color: inherit; }\n #optimole-app .button .icon, #optimole-app .button .icon.is-small, #optimole-app .button .icon.is-medium, #optimole-app .button .icon.is-large {\n height: 1.5em;\n width: 1.5em; }\n #optimole-app .button .icon:first-child:not(:last-child) {\n margin-left: calc(-0.375em - 1px);\n margin-right: 0.1875em; }\n #optimole-app .button .icon:last-child:not(:first-child) {\n margin-left: 0.1875em;\n margin-right: calc(-0.375em - 1px); }\n #optimole-app .button .icon:first-child:last-child {\n margin-left: calc(-0.375em - 1px);\n margin-right: calc(-0.375em - 1px); }\n #optimole-app .button:hover, #optimole-app .button.is-hovered {\n border-color: #b5b5b5;\n color: #363636; }\n #optimole-app .button:focus, #optimole-app .button.is-focused {\n border-color: #3273dc;\n color: #363636; }\n #optimole-app .button:focus:not(:active), #optimole-app .button.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .button:active, #optimole-app .button.is-active {\n border-color: #4a4a4a;\n color: #363636; }\n #optimole-app .button.is-text {\n background-color: transparent;\n border-color: transparent;\n color: #4a4a4a;\n text-decoration: underline; }\n #optimole-app .button.is-text:hover, #optimole-app .button.is-text.is-hovered, #optimole-app .button.is-text:focus, #optimole-app .button.is-text.is-focused {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-text:active, #optimole-app .button.is-text.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .button.is-text[disabled],\n fieldset[disabled] #optimole-app .button.is-text {\n background-color: transparent;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-white {\n background-color: white;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:hover, #optimole-app .button.is-white.is-hovered {\n background-color: #f9f9f9;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:focus, #optimole-app .button.is-white.is-focused {\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:focus:not(:active), #optimole-app .button.is-white.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .button.is-white:active, #optimole-app .button.is-white.is-active {\n background-color: #f2f2f2;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white[disabled],\n fieldset[disabled] #optimole-app .button.is-white {\n background-color: white;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-white.is-inverted {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-white.is-inverted:hover {\n background-color: black; }\n #optimole-app .button.is-white.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-white.is-inverted {\n background-color: #0a0a0a;\n border-color: transparent;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-white.is-loading::after {\n border-color: transparent transparent #0a0a0a #0a0a0a !important; }\n #optimole-app .button.is-white.is-outlined {\n background-color: transparent;\n border-color: white;\n color: white; }\n #optimole-app .button.is-white.is-outlined:hover, #optimole-app .button.is-white.is-outlined:focus {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-white.is-outlined.is-loading::after {\n border-color: transparent transparent white white !important; }\n #optimole-app .button.is-white.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-white.is-outlined {\n background-color: transparent;\n border-color: white;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-white.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n color: #0a0a0a; }\n #optimole-app .button.is-white.is-inverted.is-outlined:hover, #optimole-app .button.is-white.is-inverted.is-outlined:focus {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-white.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-white.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black {\n background-color: #0a0a0a;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:hover, #optimole-app .button.is-black.is-hovered {\n background-color: #040404;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:focus, #optimole-app .button.is-black.is-focused {\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:focus:not(:active), #optimole-app .button.is-black.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .button.is-black:active, #optimole-app .button.is-black.is-active {\n background-color: black;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black[disabled],\n fieldset[disabled] #optimole-app .button.is-black {\n background-color: #0a0a0a;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-black.is-inverted {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-black.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-black.is-inverted {\n background-color: white;\n border-color: transparent;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-loading::after {\n border-color: transparent transparent white white !important; }\n #optimole-app .button.is-black.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-outlined:hover, #optimole-app .button.is-black.is-outlined:focus {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-black.is-outlined.is-loading::after {\n border-color: transparent transparent #0a0a0a #0a0a0a !important; }\n #optimole-app .button.is-black.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-black.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted.is-outlined {\n background-color: transparent;\n border-color: white;\n color: white; }\n #optimole-app .button.is-black.is-inverted.is-outlined:hover, #optimole-app .button.is-black.is-inverted.is-outlined:focus {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-black.is-inverted.is-outlined {\n background-color: transparent;\n border-color: white;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-light {\n background-color: whitesmoke;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:hover, #optimole-app .button.is-light.is-hovered {\n background-color: #eeeeee;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:focus, #optimole-app .button.is-light.is-focused {\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:focus:not(:active), #optimole-app .button.is-light.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .button.is-light:active, #optimole-app .button.is-light.is-active {\n background-color: #e8e8e8;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light[disabled],\n fieldset[disabled] #optimole-app .button.is-light {\n background-color: whitesmoke;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-light.is-inverted {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted:hover {\n background-color: #292929; }\n #optimole-app .button.is-light.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-light.is-inverted {\n background-color: #363636;\n border-color: transparent;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-loading::after {\n border-color: transparent transparent #363636 #363636 !important; }\n #optimole-app .button.is-light.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-outlined:hover, #optimole-app .button.is-light.is-outlined:focus {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-light.is-outlined.is-loading::after {\n border-color: transparent transparent whitesmoke whitesmoke !important; }\n #optimole-app .button.is-light.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-light.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #363636;\n color: #363636; }\n #optimole-app .button.is-light.is-inverted.is-outlined:hover, #optimole-app .button.is-light.is-inverted.is-outlined:focus {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-light.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #363636;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark {\n background-color: #363636;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:hover, #optimole-app .button.is-dark.is-hovered {\n background-color: #2f2f2f;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:focus, #optimole-app .button.is-dark.is-focused {\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:focus:not(:active), #optimole-app .button.is-dark.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .button.is-dark:active, #optimole-app .button.is-dark.is-active {\n background-color: #292929;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark[disabled],\n fieldset[disabled] #optimole-app .button.is-dark {\n background-color: #363636;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-dark.is-inverted {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted:hover {\n background-color: #e8e8e8; }\n #optimole-app .button.is-dark.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-dark.is-inverted {\n background-color: whitesmoke;\n border-color: transparent;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark.is-loading::after {\n border-color: transparent transparent whitesmoke whitesmoke !important; }\n #optimole-app .button.is-dark.is-outlined {\n background-color: transparent;\n border-color: #363636;\n color: #363636; }\n #optimole-app .button.is-dark.is-outlined:hover, #optimole-app .button.is-dark.is-outlined:focus {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-dark.is-outlined.is-loading::after {\n border-color: transparent transparent #363636 #363636 !important; }\n #optimole-app .button.is-dark.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-dark.is-outlined {\n background-color: transparent;\n border-color: #363636;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n color: whitesmoke; }\n #optimole-app .button.is-dark.is-inverted.is-outlined:hover, #optimole-app .button.is-dark.is-inverted.is-outlined:focus {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-dark.is-inverted.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-primary {\n background-color: #EF686B;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:hover, #optimole-app .button.is-primary.is-hovered {\n background-color: #ee5c60;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:focus, #optimole-app .button.is-primary.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:focus:not(:active), #optimole-app .button.is-primary.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(239, 104, 107, 0.25); }\n #optimole-app .button.is-primary:active, #optimole-app .button.is-primary.is-active {\n background-color: #ed5154;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary[disabled],\n fieldset[disabled] #optimole-app .button.is-primary {\n background-color: #EF686B;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-primary.is-inverted {\n background-color: #fff;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-primary.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-primary.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-primary.is-outlined {\n background-color: transparent;\n border-color: #EF686B;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-outlined:hover, #optimole-app .button.is-primary.is-outlined:focus {\n background-color: #EF686B;\n border-color: #EF686B;\n color: #fff; }\n #optimole-app .button.is-primary.is-outlined.is-loading::after {\n border-color: transparent transparent #EF686B #EF686B !important; }\n #optimole-app .button.is-primary.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-primary.is-outlined {\n background-color: transparent;\n border-color: #EF686B;\n box-shadow: none;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-primary.is-inverted.is-outlined:hover, #optimole-app .button.is-primary.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-primary.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-link {\n background-color: #3273dc;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:hover, #optimole-app .button.is-link.is-hovered {\n background-color: #276cda;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:focus, #optimole-app .button.is-link.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:focus:not(:active), #optimole-app .button.is-link.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .button.is-link:active, #optimole-app .button.is-link.is-active {\n background-color: #2366d1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link[disabled],\n fieldset[disabled] #optimole-app .button.is-link {\n background-color: #3273dc;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-link.is-inverted {\n background-color: #fff;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-link.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-link.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #3273dc; }\n #optimole-app .button.is-link.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-link.is-outlined {\n background-color: transparent;\n border-color: #3273dc;\n color: #3273dc; }\n #optimole-app .button.is-link.is-outlined:hover, #optimole-app .button.is-link.is-outlined:focus {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .button.is-link.is-outlined.is-loading::after {\n border-color: transparent transparent #3273dc #3273dc !important; }\n #optimole-app .button.is-link.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-link.is-outlined {\n background-color: transparent;\n border-color: #3273dc;\n box-shadow: none;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-link.is-inverted.is-outlined:hover, #optimole-app .button.is-link.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-link.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-info {\n background-color: #5180C1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:hover, #optimole-app .button.is-info.is-hovered {\n background-color: #4879be;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:focus, #optimole-app .button.is-info.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:focus:not(:active), #optimole-app .button.is-info.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(81, 128, 193, 0.25); }\n #optimole-app .button.is-info:active, #optimole-app .button.is-info.is-active {\n background-color: #4173b7;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info[disabled],\n fieldset[disabled] #optimole-app .button.is-info {\n background-color: #5180C1;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-info.is-inverted {\n background-color: #fff;\n color: #5180C1; }\n #optimole-app .button.is-info.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-info.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-info.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #5180C1; }\n #optimole-app .button.is-info.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-info.is-outlined {\n background-color: transparent;\n border-color: #5180C1;\n color: #5180C1; }\n #optimole-app .button.is-info.is-outlined:hover, #optimole-app .button.is-info.is-outlined:focus {\n background-color: #5180C1;\n border-color: #5180C1;\n color: #fff; }\n #optimole-app .button.is-info.is-outlined.is-loading::after {\n border-color: transparent transparent #5180C1 #5180C1 !important; }\n #optimole-app .button.is-info.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-info.is-outlined {\n background-color: transparent;\n border-color: #5180C1;\n box-shadow: none;\n color: #5180C1; }\n #optimole-app .button.is-info.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-info.is-inverted.is-outlined:hover, #optimole-app .button.is-info.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #5180C1; }\n #optimole-app .button.is-info.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-info.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-success {\n background-color: #34a85e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:hover, #optimole-app .button.is-success.is-hovered {\n background-color: #319e59;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:focus, #optimole-app .button.is-success.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:focus:not(:active), #optimole-app .button.is-success.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .button.is-success:active, #optimole-app .button.is-success.is-active {\n background-color: #2e9553;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success[disabled],\n fieldset[disabled] #optimole-app .button.is-success {\n background-color: #34a85e;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-success.is-inverted {\n background-color: #fff;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-success.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-success.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #34a85e; }\n #optimole-app .button.is-success.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-success.is-outlined {\n background-color: transparent;\n border-color: #34a85e;\n color: #34a85e; }\n #optimole-app .button.is-success.is-outlined:hover, #optimole-app .button.is-success.is-outlined:focus {\n background-color: #34a85e;\n border-color: #34a85e;\n color: #fff; }\n #optimole-app .button.is-success.is-outlined.is-loading::after {\n border-color: transparent transparent #34a85e #34a85e !important; }\n #optimole-app .button.is-success.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-success.is-outlined {\n background-color: transparent;\n border-color: #34a85e;\n box-shadow: none;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-success.is-inverted.is-outlined:hover, #optimole-app .button.is-success.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-success.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-warning {\n background-color: #ffdd57;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:hover, #optimole-app .button.is-warning.is-hovered {\n background-color: #ffdb4a;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:focus, #optimole-app .button.is-warning.is-focused {\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:focus:not(:active), #optimole-app .button.is-warning.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .button.is-warning:active, #optimole-app .button.is-warning.is-active {\n background-color: #ffd83d;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning[disabled],\n fieldset[disabled] #optimole-app .button.is-warning {\n background-color: #ffdd57;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-warning.is-inverted {\n background-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted:hover {\n background-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-warning.is-inverted {\n background-color: rgba(0, 0, 0, 0.7);\n border-color: transparent;\n box-shadow: none;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-loading::after {\n border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }\n #optimole-app .button.is-warning.is-outlined {\n background-color: transparent;\n border-color: #ffdd57;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-outlined:hover, #optimole-app .button.is-warning.is-outlined:focus {\n background-color: #ffdd57;\n border-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-outlined.is-loading::after {\n border-color: transparent transparent #ffdd57 #ffdd57 !important; }\n #optimole-app .button.is-warning.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-warning.is-outlined {\n background-color: transparent;\n border-color: #ffdd57;\n box-shadow: none;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted.is-outlined {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.7);\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-inverted.is-outlined:hover, #optimole-app .button.is-warning.is-inverted.is-outlined:focus {\n background-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-warning.is-inverted.is-outlined {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.7);\n box-shadow: none;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-danger {\n background-color: #D54222;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:hover, #optimole-app .button.is-danger.is-hovered {\n background-color: #ca3f20;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:focus, #optimole-app .button.is-danger.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:focus:not(:active), #optimole-app .button.is-danger.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .button.is-danger:active, #optimole-app .button.is-danger.is-active {\n background-color: #bf3b1e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger[disabled],\n fieldset[disabled] #optimole-app .button.is-danger {\n background-color: #D54222;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-danger.is-inverted {\n background-color: #fff;\n color: #D54222; }\n #optimole-app .button.is-danger.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-danger.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-danger.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #D54222; }\n #optimole-app .button.is-danger.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-danger.is-outlined {\n background-color: transparent;\n border-color: #D54222;\n color: #D54222; }\n #optimole-app .button.is-danger.is-outlined:hover, #optimole-app .button.is-danger.is-outlined:focus {\n background-color: #D54222;\n border-color: #D54222;\n color: #fff; }\n #optimole-app .button.is-danger.is-outlined.is-loading::after {\n border-color: transparent transparent #D54222 #D54222 !important; }\n #optimole-app .button.is-danger.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-danger.is-outlined {\n background-color: transparent;\n border-color: #D54222;\n box-shadow: none;\n color: #D54222; }\n #optimole-app .button.is-danger.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-danger.is-inverted.is-outlined:hover, #optimole-app .button.is-danger.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #D54222; }\n #optimole-app .button.is-danger.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-danger.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .button.is-normal {\n font-size: 1rem; }\n #optimole-app .button.is-medium {\n font-size: 1.25rem; }\n #optimole-app .button.is-large {\n font-size: 1.5rem; }\n #optimole-app .button[disabled],\n fieldset[disabled] #optimole-app .button {\n background-color: white;\n border-color: #dbdbdb;\n box-shadow: none;\n opacity: 0.5; }\n #optimole-app .button.is-fullwidth {\n display: -ms-flexbox;\n display: flex;\n width: 100%; }\n #optimole-app .button.is-loading {\n color: transparent !important;\n pointer-events: none; }\n #optimole-app .button.is-loading::after {\n position: absolute;\n left: calc(50% - (1em / 2));\n top: calc(50% - (1em / 2));\n position: absolute !important; }\n #optimole-app .button.is-static {\n background-color: whitesmoke;\n border-color: #dbdbdb;\n color: #7a7a7a;\n box-shadow: none;\n pointer-events: none; }\n #optimole-app .button.is-rounded {\n border-radius: 290486px;\n padding-left: 1em;\n padding-right: 1em; }\n #optimole-app .buttons {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .buttons .button {\n margin-bottom: 0.5rem; }\n #optimole-app .buttons .button:not(:last-child):not(.is-fullwidth) {\n margin-right: 0.5rem; }\n #optimole-app .buttons:last-child {\n margin-bottom: -0.5rem; }\n #optimole-app .buttons:not(:last-child) {\n margin-bottom: 1rem; }\n #optimole-app .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {\n font-size: 1.25rem; }\n #optimole-app .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {\n font-size: 1.5rem; }\n #optimole-app .buttons.has-addons .button:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .buttons.has-addons .button:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n margin-right: -1px; }\n #optimole-app .buttons.has-addons .button:last-child {\n margin-right: 0; }\n #optimole-app .buttons.has-addons .button:hover, #optimole-app .buttons.has-addons .button.is-hovered {\n z-index: 2; }\n #optimole-app .buttons.has-addons .button:focus, #optimole-app .buttons.has-addons .button.is-focused, #optimole-app .buttons.has-addons .button:active, #optimole-app .buttons.has-addons .button.is-active, #optimole-app .buttons.has-addons .button.is-selected {\n z-index: 3; }\n #optimole-app .buttons.has-addons .button:focus:hover, #optimole-app .buttons.has-addons .button.is-focused:hover, #optimole-app .buttons.has-addons .button:active:hover, #optimole-app .buttons.has-addons .button.is-active:hover, #optimole-app .buttons.has-addons .button.is-selected:hover {\n z-index: 4; }\n #optimole-app .buttons.has-addons .button.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .buttons.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .buttons.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .container {\n margin: 0 auto;\n position: relative; }\n @media screen and (min-width: 1088px) {\n #optimole-app .container {\n max-width: 960px;\n width: 960px; }\n #optimole-app .container.is-fluid {\n margin-left: 64px;\n margin-right: 64px;\n max-width: none;\n width: auto; } }\n @media screen and (max-width: 1279px) {\n #optimole-app .container.is-widescreen {\n max-width: 1152px;\n width: auto; } }\n @media screen and (max-width: 1471px) {\n #optimole-app .container.is-fullhd {\n max-width: 1344px;\n width: auto; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .container {\n max-width: 1152px;\n width: 1152px; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .container {\n max-width: 1344px;\n width: 1344px; } }\n #optimole-app .content li + li {\n margin-top: 0.25em; }\n #optimole-app .content p:not(:last-child),\n #optimole-app .content dl:not(:last-child),\n #optimole-app .content ol:not(:last-child),\n #optimole-app .content ul:not(:last-child),\n #optimole-app .content blockquote:not(:last-child),\n #optimole-app .content pre:not(:last-child),\n #optimole-app .content table:not(:last-child) {\n margin-bottom: 1em; }\n #optimole-app .content h1,\n #optimole-app .content h2,\n #optimole-app .content h3,\n #optimole-app .content h4,\n #optimole-app .content h5,\n #optimole-app .content h6 {\n color: #363636;\n font-weight: 600;\n line-height: 1.125; }\n #optimole-app .content h1 {\n font-size: 2em;\n margin-bottom: 0.5em; }\n #optimole-app .content h1:not(:first-child) {\n margin-top: 1em; }\n #optimole-app .content h2 {\n font-size: 1.75em;\n margin-bottom: 0.5714em; }\n #optimole-app .content h2:not(:first-child) {\n margin-top: 1.1428em; }\n #optimole-app .content h3 {\n font-size: 1.5em;\n margin-bottom: 0.6666em; }\n #optimole-app .content h3:not(:first-child) {\n margin-top: 1.3333em; }\n #optimole-app .content h4 {\n font-size: 1.25em;\n margin-bottom: 0.8em; }\n #optimole-app .content h5 {\n font-size: 1.125em;\n margin-bottom: 0.8888em; }\n #optimole-app .content h6 {\n font-size: 1em;\n margin-bottom: 1em; }\n #optimole-app .content blockquote {\n background-color: whitesmoke;\n border-left: 5px solid #dbdbdb;\n padding: 1.25em 1.5em; }\n #optimole-app .content ol {\n list-style-position: outside;\n margin-left: 2em;\n margin-top: 1em; }\n #optimole-app .content ol:not([type]) {\n list-style-type: decimal; }\n #optimole-app .content ol:not([type]).is-lower-alpha {\n list-style-type: lower-alpha; }\n #optimole-app .content ol:not([type]).is-lower-roman {\n list-style-type: lower-roman; }\n #optimole-app .content ol:not([type]).is-upper-alpha {\n list-style-type: upper-alpha; }\n #optimole-app .content ol:not([type]).is-upper-roman {\n list-style-type: upper-roman; }\n #optimole-app .content ul {\n list-style: disc outside;\n margin-left: 2em;\n margin-top: 1em; }\n #optimole-app .content ul ul {\n list-style-type: circle;\n margin-top: 0.5em; }\n #optimole-app .content ul ul ul {\n list-style-type: square; }\n #optimole-app .content dd {\n margin-left: 2em; }\n #optimole-app .content figure {\n margin-left: 2em;\n margin-right: 2em;\n text-align: center; }\n #optimole-app .content figure:not(:first-child) {\n margin-top: 2em; }\n #optimole-app .content figure:not(:last-child) {\n margin-bottom: 2em; }\n #optimole-app .content figure img {\n display: inline-block; }\n #optimole-app .content figure figcaption {\n font-style: italic; }\n #optimole-app .content pre {\n -webkit-overflow-scrolling: touch;\n overflow-x: auto;\n padding: 1.25em 1.5em;\n white-space: pre;\n word-wrap: normal; }\n #optimole-app .content sup,\n #optimole-app .content sub {\n font-size: 75%; }\n #optimole-app .content table {\n width: 100%; }\n #optimole-app .content table td,\n #optimole-app .content table th {\n border: 1px solid #dbdbdb;\n border-width: 0 0 1px;\n padding: 0.5em 0.75em;\n vertical-align: top; }\n #optimole-app .content table th {\n color: #363636;\n text-align: left; }\n #optimole-app .content table thead td,\n #optimole-app .content table thead th {\n border-width: 0 0 2px;\n color: #363636; }\n #optimole-app .content table tfoot td,\n #optimole-app .content table tfoot th {\n border-width: 2px 0 0;\n color: #363636; }\n #optimole-app .content table tbody tr:last-child td,\n #optimole-app .content table tbody tr:last-child th {\n border-bottom-width: 0; }\n #optimole-app .content.is-small {\n font-size: 0.75rem; }\n #optimole-app .content.is-medium {\n font-size: 1.25rem; }\n #optimole-app .content.is-large {\n font-size: 1.5rem; }\n #optimole-app .input,\n #optimole-app .textarea {\n background-color: white;\n border-color: #dbdbdb;\n color: #363636;\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n max-width: 100%;\n width: 100%; }\n #optimole-app .input::-moz-placeholder,\n #optimole-app .textarea::-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input::-webkit-input-placeholder,\n #optimole-app .textarea::-webkit-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:-moz-placeholder,\n #optimole-app .textarea:-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:-ms-input-placeholder,\n #optimole-app .textarea:-ms-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:hover, #optimole-app .input.is-hovered,\n #optimole-app .textarea:hover,\n #optimole-app .textarea.is-hovered {\n border-color: #b5b5b5; }\n #optimole-app .input:focus, #optimole-app .input.is-focused, #optimole-app .input:active, #optimole-app .input.is-active,\n #optimole-app .textarea:focus,\n #optimole-app .textarea.is-focused,\n #optimole-app .textarea:active,\n #optimole-app .textarea.is-active {\n border-color: #3273dc;\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .input[disabled],\n fieldset[disabled] #optimole-app .input,\n #optimole-app .textarea[disabled],\n fieldset[disabled]\n #optimole-app .textarea {\n background-color: whitesmoke;\n border-color: whitesmoke;\n box-shadow: none;\n color: #7a7a7a; }\n #optimole-app .input[disabled]::-moz-placeholder,\n fieldset[disabled] #optimole-app .input::-moz-placeholder,\n #optimole-app .textarea[disabled]::-moz-placeholder,\n fieldset[disabled]\n #optimole-app .textarea::-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]::-webkit-input-placeholder,\n fieldset[disabled] #optimole-app .input::-webkit-input-placeholder,\n #optimole-app .textarea[disabled]::-webkit-input-placeholder,\n fieldset[disabled]\n #optimole-app .textarea::-webkit-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]:-moz-placeholder,\n fieldset[disabled] #optimole-app .input:-moz-placeholder,\n #optimole-app .textarea[disabled]:-moz-placeholder,\n fieldset[disabled]\n #optimole-app .textarea:-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]:-ms-input-placeholder,\n fieldset[disabled] #optimole-app .input:-ms-input-placeholder,\n #optimole-app .textarea[disabled]:-ms-input-placeholder,\n fieldset[disabled]\n #optimole-app .textarea:-ms-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[readonly],\n #optimole-app .textarea[readonly] {\n box-shadow: none; }\n #optimole-app .input.is-white,\n #optimole-app .textarea.is-white {\n border-color: white; }\n #optimole-app .input.is-white:focus, #optimole-app .input.is-white.is-focused, #optimole-app .input.is-white:active, #optimole-app .input.is-white.is-active,\n #optimole-app .textarea.is-white:focus,\n #optimole-app .textarea.is-white.is-focused,\n #optimole-app .textarea.is-white:active,\n #optimole-app .textarea.is-white.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .input.is-black,\n #optimole-app .textarea.is-black {\n border-color: #0a0a0a; }\n #optimole-app .input.is-black:focus, #optimole-app .input.is-black.is-focused, #optimole-app .input.is-black:active, #optimole-app .input.is-black.is-active,\n #optimole-app .textarea.is-black:focus,\n #optimole-app .textarea.is-black.is-focused,\n #optimole-app .textarea.is-black:active,\n #optimole-app .textarea.is-black.is-active {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .input.is-light,\n #optimole-app .textarea.is-light {\n border-color: whitesmoke; }\n #optimole-app .input.is-light:focus, #optimole-app .input.is-light.is-focused, #optimole-app .input.is-light:active, #optimole-app .input.is-light.is-active,\n #optimole-app .textarea.is-light:focus,\n #optimole-app .textarea.is-light.is-focused,\n #optimole-app .textarea.is-light:active,\n #optimole-app .textarea.is-light.is-active {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .input.is-dark,\n #optimole-app .textarea.is-dark {\n border-color: #363636; }\n #optimole-app .input.is-dark:focus, #optimole-app .input.is-dark.is-focused, #optimole-app .input.is-dark:active, #optimole-app .input.is-dark.is-active,\n #optimole-app .textarea.is-dark:focus,\n #optimole-app .textarea.is-dark.is-focused,\n #optimole-app .textarea.is-dark:active,\n #optimole-app .textarea.is-dark.is-active {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .input.is-primary,\n #optimole-app .textarea.is-primary {\n border-color: #EF686B; }\n #optimole-app .input.is-primary:focus, #optimole-app .input.is-primary.is-focused, #optimole-app .input.is-primary:active, #optimole-app .input.is-primary.is-active,\n #optimole-app .textarea.is-primary:focus,\n #optimole-app .textarea.is-primary.is-focused,\n #optimole-app .textarea.is-primary:active,\n #optimole-app .textarea.is-primary.is-active {\n box-shadow: 0 0 0 0.125em rgba(239, 104, 107, 0.25); }\n #optimole-app .input.is-link,\n #optimole-app .textarea.is-link {\n border-color: #3273dc; }\n #optimole-app .input.is-link:focus, #optimole-app .input.is-link.is-focused, #optimole-app .input.is-link:active, #optimole-app .input.is-link.is-active,\n #optimole-app .textarea.is-link:focus,\n #optimole-app .textarea.is-link.is-focused,\n #optimole-app .textarea.is-link:active,\n #optimole-app .textarea.is-link.is-active {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .input.is-info,\n #optimole-app .textarea.is-info {\n border-color: #5180C1; }\n #optimole-app .input.is-info:focus, #optimole-app .input.is-info.is-focused, #optimole-app .input.is-info:active, #optimole-app .input.is-info.is-active,\n #optimole-app .textarea.is-info:focus,\n #optimole-app .textarea.is-info.is-focused,\n #optimole-app .textarea.is-info:active,\n #optimole-app .textarea.is-info.is-active {\n box-shadow: 0 0 0 0.125em rgba(81, 128, 193, 0.25); }\n #optimole-app .input.is-success,\n #optimole-app .textarea.is-success {\n border-color: #34a85e; }\n #optimole-app .input.is-success:focus, #optimole-app .input.is-success.is-focused, #optimole-app .input.is-success:active, #optimole-app .input.is-success.is-active,\n #optimole-app .textarea.is-success:focus,\n #optimole-app .textarea.is-success.is-focused,\n #optimole-app .textarea.is-success:active,\n #optimole-app .textarea.is-success.is-active {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .input.is-warning,\n #optimole-app .textarea.is-warning {\n border-color: #ffdd57; }\n #optimole-app .input.is-warning:focus, #optimole-app .input.is-warning.is-focused, #optimole-app .input.is-warning:active, #optimole-app .input.is-warning.is-active,\n #optimole-app .textarea.is-warning:focus,\n #optimole-app .textarea.is-warning.is-focused,\n #optimole-app .textarea.is-warning:active,\n #optimole-app .textarea.is-warning.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .input.is-danger,\n #optimole-app .textarea.is-danger {\n border-color: #D54222; }\n #optimole-app .input.is-danger:focus, #optimole-app .input.is-danger.is-focused, #optimole-app .input.is-danger:active, #optimole-app .input.is-danger.is-active,\n #optimole-app .textarea.is-danger:focus,\n #optimole-app .textarea.is-danger.is-focused,\n #optimole-app .textarea.is-danger:active,\n #optimole-app .textarea.is-danger.is-active {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .input.is-small,\n #optimole-app .textarea.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .input.is-medium,\n #optimole-app .textarea.is-medium {\n font-size: 1.25rem; }\n #optimole-app .input.is-large,\n #optimole-app .textarea.is-large {\n font-size: 1.5rem; }\n #optimole-app .input.is-fullwidth,\n #optimole-app .textarea.is-fullwidth {\n display: block;\n width: 100%; }\n #optimole-app .input.is-inline,\n #optimole-app .textarea.is-inline {\n display: inline;\n width: auto; }\n #optimole-app .input.is-rounded {\n border-radius: 290486px;\n padding-left: 1em;\n padding-right: 1em; }\n #optimole-app .input.is-static {\n background-color: transparent;\n border-color: transparent;\n box-shadow: none;\n padding-left: 0;\n padding-right: 0; }\n #optimole-app .textarea {\n display: block;\n max-width: 100%;\n min-width: 100%;\n padding: 0.625em;\n resize: vertical; }\n #optimole-app .textarea:not([rows]) {\n max-height: 600px;\n min-height: 120px; }\n #optimole-app .textarea[rows] {\n height: initial; }\n #optimole-app .textarea.has-fixed-size {\n resize: none; }\n #optimole-app .checkbox,\n #optimole-app .radio {\n cursor: pointer;\n display: inline-block;\n line-height: 1.25;\n position: relative; }\n #optimole-app .checkbox input,\n #optimole-app .radio input {\n cursor: pointer; }\n #optimole-app .checkbox:hover,\n #optimole-app .radio:hover {\n color: #363636; }\n #optimole-app .checkbox[disabled],\n fieldset[disabled] #optimole-app .checkbox,\n #optimole-app .radio[disabled],\n fieldset[disabled]\n #optimole-app .radio {\n color: #7a7a7a;\n cursor: not-allowed; }\n #optimole-app .radio + .radio {\n margin-left: 0.5em; }\n #optimole-app .select {\n display: inline-block;\n max-width: 100%;\n position: relative;\n vertical-align: top; }\n #optimole-app .select:not(.is-multiple) {\n height: 2.25em; }\n #optimole-app .select:not(.is-multiple):not(.is-loading)::after {\n border-color: #3273dc;\n right: 1.125em;\n z-index: 4; }\n #optimole-app .select.is-rounded select {\n border-radius: 290486px;\n padding-left: 1em; }\n #optimole-app .select select {\n background-color: white;\n border-color: #dbdbdb;\n color: #363636;\n cursor: pointer;\n display: block;\n font-size: 1em;\n max-width: 100%;\n outline: none; }\n #optimole-app .select select::-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select::-webkit-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:-ms-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:hover, #optimole-app .select select.is-hovered {\n border-color: #b5b5b5; }\n #optimole-app .select select:focus, #optimole-app .select select.is-focused, #optimole-app .select select:active, #optimole-app .select select.is-active {\n border-color: #3273dc;\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .select select[disabled],\n fieldset[disabled] #optimole-app .select select {\n background-color: whitesmoke;\n border-color: whitesmoke;\n box-shadow: none;\n color: #7a7a7a; }\n #optimole-app .select select[disabled]::-moz-placeholder,\n fieldset[disabled] #optimole-app .select select::-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]::-webkit-input-placeholder,\n fieldset[disabled] #optimole-app .select select::-webkit-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]:-moz-placeholder,\n fieldset[disabled] #optimole-app .select select:-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]:-ms-input-placeholder,\n fieldset[disabled] #optimole-app .select select:-ms-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select::-ms-expand {\n display: none; }\n #optimole-app .select select[disabled]:hover,\n fieldset[disabled] #optimole-app .select select:hover {\n border-color: whitesmoke; }\n #optimole-app .select select:not([multiple]) {\n padding-right: 2.5em; }\n #optimole-app .select select[multiple] {\n height: auto;\n padding: 0; }\n #optimole-app .select select[multiple] option {\n padding: 0.5em 1em; }\n #optimole-app .select:not(.is-multiple):not(.is-loading):hover::after {\n border-color: #363636; }\n #optimole-app .select.is-white:not(:hover)::after {\n border-color: white; }\n #optimole-app .select.is-white select {\n border-color: white; }\n #optimole-app .select.is-white select:hover, #optimole-app .select.is-white select.is-hovered {\n border-color: #f2f2f2; }\n #optimole-app .select.is-white select:focus, #optimole-app .select.is-white select.is-focused, #optimole-app .select.is-white select:active, #optimole-app .select.is-white select.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .select.is-black:not(:hover)::after {\n border-color: #0a0a0a; }\n #optimole-app .select.is-black select {\n border-color: #0a0a0a; }\n #optimole-app .select.is-black select:hover, #optimole-app .select.is-black select.is-hovered {\n border-color: black; }\n #optimole-app .select.is-black select:focus, #optimole-app .select.is-black select.is-focused, #optimole-app .select.is-black select:active, #optimole-app .select.is-black select.is-active {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .select.is-light:not(:hover)::after {\n border-color: whitesmoke; }\n #optimole-app .select.is-light select {\n border-color: whitesmoke; }\n #optimole-app .select.is-light select:hover, #optimole-app .select.is-light select.is-hovered {\n border-color: #e8e8e8; }\n #optimole-app .select.is-light select:focus, #optimole-app .select.is-light select.is-focused, #optimole-app .select.is-light select:active, #optimole-app .select.is-light select.is-active {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .select.is-dark:not(:hover)::after {\n border-color: #363636; }\n #optimole-app .select.is-dark select {\n border-color: #363636; }\n #optimole-app .select.is-dark select:hover, #optimole-app .select.is-dark select.is-hovered {\n border-color: #292929; }\n #optimole-app .select.is-dark select:focus, #optimole-app .select.is-dark select.is-focused, #optimole-app .select.is-dark select:active, #optimole-app .select.is-dark select.is-active {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .select.is-primary:not(:hover)::after {\n border-color: #EF686B; }\n #optimole-app .select.is-primary select {\n border-color: #EF686B; }\n #optimole-app .select.is-primary select:hover, #optimole-app .select.is-primary select.is-hovered {\n border-color: #ed5154; }\n #optimole-app .select.is-primary select:focus, #optimole-app .select.is-primary select.is-focused, #optimole-app .select.is-primary select:active, #optimole-app .select.is-primary select.is-active {\n box-shadow: 0 0 0 0.125em rgba(239, 104, 107, 0.25); }\n #optimole-app .select.is-link:not(:hover)::after {\n border-color: #3273dc; }\n #optimole-app .select.is-link select {\n border-color: #3273dc; }\n #optimole-app .select.is-link select:hover, #optimole-app .select.is-link select.is-hovered {\n border-color: #2366d1; }\n #optimole-app .select.is-link select:focus, #optimole-app .select.is-link select.is-focused, #optimole-app .select.is-link select:active, #optimole-app .select.is-link select.is-active {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .select.is-info:not(:hover)::after {\n border-color: #5180C1; }\n #optimole-app .select.is-info select {\n border-color: #5180C1; }\n #optimole-app .select.is-info select:hover, #optimole-app .select.is-info select.is-hovered {\n border-color: #4173b7; }\n #optimole-app .select.is-info select:focus, #optimole-app .select.is-info select.is-focused, #optimole-app .select.is-info select:active, #optimole-app .select.is-info select.is-active {\n box-shadow: 0 0 0 0.125em rgba(81, 128, 193, 0.25); }\n #optimole-app .select.is-success:not(:hover)::after {\n border-color: #34a85e; }\n #optimole-app .select.is-success select {\n border-color: #34a85e; }\n #optimole-app .select.is-success select:hover, #optimole-app .select.is-success select.is-hovered {\n border-color: #2e9553; }\n #optimole-app .select.is-success select:focus, #optimole-app .select.is-success select.is-focused, #optimole-app .select.is-success select:active, #optimole-app .select.is-success select.is-active {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .select.is-warning:not(:hover)::after {\n border-color: #ffdd57; }\n #optimole-app .select.is-warning select {\n border-color: #ffdd57; }\n #optimole-app .select.is-warning select:hover, #optimole-app .select.is-warning select.is-hovered {\n border-color: #ffd83d; }\n #optimole-app .select.is-warning select:focus, #optimole-app .select.is-warning select.is-focused, #optimole-app .select.is-warning select:active, #optimole-app .select.is-warning select.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .select.is-danger:not(:hover)::after {\n border-color: #D54222; }\n #optimole-app .select.is-danger select {\n border-color: #D54222; }\n #optimole-app .select.is-danger select:hover, #optimole-app .select.is-danger select.is-hovered {\n border-color: #bf3b1e; }\n #optimole-app .select.is-danger select:focus, #optimole-app .select.is-danger select.is-focused, #optimole-app .select.is-danger select:active, #optimole-app .select.is-danger select.is-active {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .select.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .select.is-medium {\n font-size: 1.25rem; }\n #optimole-app .select.is-large {\n font-size: 1.5rem; }\n #optimole-app .select.is-disabled::after {\n border-color: #7a7a7a; }\n #optimole-app .select.is-fullwidth {\n width: 100%; }\n #optimole-app .select.is-fullwidth select {\n width: 100%; }\n #optimole-app .select.is-loading::after {\n margin-top: 0;\n position: absolute;\n right: 0.625em;\n top: 0.625em;\n transform: none; }\n #optimole-app .select.is-loading.is-small:after {\n font-size: 0.75rem; }\n #optimole-app .select.is-loading.is-medium:after {\n font-size: 1.25rem; }\n #optimole-app .select.is-loading.is-large:after {\n font-size: 1.5rem; }\n #optimole-app .file {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start;\n position: relative; }\n #optimole-app .file.is-white .file-cta {\n background-color: white;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-white:hover .file-cta, #optimole-app .file.is-white.is-hovered .file-cta {\n background-color: #f9f9f9;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-white:focus .file-cta, #optimole-app .file.is-white.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);\n color: #0a0a0a; }\n #optimole-app .file.is-white:active .file-cta, #optimole-app .file.is-white.is-active .file-cta {\n background-color: #f2f2f2;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-black .file-cta {\n background-color: #0a0a0a;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-black:hover .file-cta, #optimole-app .file.is-black.is-hovered .file-cta {\n background-color: #040404;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-black:focus .file-cta, #optimole-app .file.is-black.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);\n color: white; }\n #optimole-app .file.is-black:active .file-cta, #optimole-app .file.is-black.is-active .file-cta {\n background-color: black;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-light .file-cta {\n background-color: whitesmoke;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-light:hover .file-cta, #optimole-app .file.is-light.is-hovered .file-cta {\n background-color: #eeeeee;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-light:focus .file-cta, #optimole-app .file.is-light.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);\n color: #363636; }\n #optimole-app .file.is-light:active .file-cta, #optimole-app .file.is-light.is-active .file-cta {\n background-color: #e8e8e8;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-dark .file-cta {\n background-color: #363636;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-dark:hover .file-cta, #optimole-app .file.is-dark.is-hovered .file-cta {\n background-color: #2f2f2f;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-dark:focus .file-cta, #optimole-app .file.is-dark.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);\n color: whitesmoke; }\n #optimole-app .file.is-dark:active .file-cta, #optimole-app .file.is-dark.is-active .file-cta {\n background-color: #292929;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-primary .file-cta {\n background-color: #EF686B;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-primary:hover .file-cta, #optimole-app .file.is-primary.is-hovered .file-cta {\n background-color: #ee5c60;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-primary:focus .file-cta, #optimole-app .file.is-primary.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(239, 104, 107, 0.25);\n color: #fff; }\n #optimole-app .file.is-primary:active .file-cta, #optimole-app .file.is-primary.is-active .file-cta {\n background-color: #ed5154;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link .file-cta {\n background-color: #3273dc;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link:hover .file-cta, #optimole-app .file.is-link.is-hovered .file-cta {\n background-color: #276cda;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link:focus .file-cta, #optimole-app .file.is-link.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(50, 115, 220, 0.25);\n color: #fff; }\n #optimole-app .file.is-link:active .file-cta, #optimole-app .file.is-link.is-active .file-cta {\n background-color: #2366d1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info .file-cta {\n background-color: #5180C1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info:hover .file-cta, #optimole-app .file.is-info.is-hovered .file-cta {\n background-color: #4879be;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info:focus .file-cta, #optimole-app .file.is-info.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(81, 128, 193, 0.25);\n color: #fff; }\n #optimole-app .file.is-info:active .file-cta, #optimole-app .file.is-info.is-active .file-cta {\n background-color: #4173b7;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success .file-cta {\n background-color: #34a85e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success:hover .file-cta, #optimole-app .file.is-success.is-hovered .file-cta {\n background-color: #319e59;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success:focus .file-cta, #optimole-app .file.is-success.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(52, 168, 94, 0.25);\n color: #fff; }\n #optimole-app .file.is-success:active .file-cta, #optimole-app .file.is-success.is-active .file-cta {\n background-color: #2e9553;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-warning .file-cta {\n background-color: #ffdd57;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:hover .file-cta, #optimole-app .file.is-warning.is-hovered .file-cta {\n background-color: #ffdb4a;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:focus .file-cta, #optimole-app .file.is-warning.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:active .file-cta, #optimole-app .file.is-warning.is-active .file-cta {\n background-color: #ffd83d;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-danger .file-cta {\n background-color: #D54222;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-danger:hover .file-cta, #optimole-app .file.is-danger.is-hovered .file-cta {\n background-color: #ca3f20;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-danger:focus .file-cta, #optimole-app .file.is-danger.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(213, 66, 34, 0.25);\n color: #fff; }\n #optimole-app .file.is-danger:active .file-cta, #optimole-app .file.is-danger.is-active .file-cta {\n background-color: #bf3b1e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-small {\n font-size: 0.75rem; }\n #optimole-app .file.is-medium {\n font-size: 1.25rem; }\n #optimole-app .file.is-medium .file-icon .fa {\n font-size: 21px; }\n #optimole-app .file.is-large {\n font-size: 1.5rem; }\n #optimole-app .file.is-large .file-icon .fa {\n font-size: 28px; }\n #optimole-app .file.has-name .file-cta {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .file.has-name .file-name {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .file.has-name.is-empty .file-cta {\n border-radius: 4px; }\n #optimole-app .file.has-name.is-empty .file-name {\n display: none; }\n #optimole-app .file.is-boxed .file-label {\n -ms-flex-direction: column;\n flex-direction: column; }\n #optimole-app .file.is-boxed .file-cta {\n -ms-flex-direction: column;\n flex-direction: column;\n height: auto;\n padding: 1em 3em; }\n #optimole-app .file.is-boxed .file-name {\n border-width: 0 1px 1px; }\n #optimole-app .file.is-boxed .file-icon {\n height: 1.5em;\n width: 1.5em; }\n #optimole-app .file.is-boxed .file-icon .fa {\n font-size: 21px; }\n #optimole-app .file.is-boxed.is-small .file-icon .fa {\n font-size: 14px; }\n #optimole-app .file.is-boxed.is-medium .file-icon .fa {\n font-size: 28px; }\n #optimole-app .file.is-boxed.is-large .file-icon .fa {\n font-size: 35px; }\n #optimole-app .file.is-boxed.has-name .file-cta {\n border-radius: 4px 4px 0 0; }\n #optimole-app .file.is-boxed.has-name .file-name {\n border-radius: 0 0 4px 4px;\n border-width: 0 1px 1px; }\n #optimole-app .file.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .file.is-fullwidth .file-label {\n width: 100%; }\n #optimole-app .file.is-fullwidth .file-name {\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: none; }\n #optimole-app .file.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .file.is-right .file-cta {\n border-radius: 0 4px 4px 0; }\n #optimole-app .file.is-right .file-name {\n border-radius: 4px 0 0 4px;\n border-width: 1px 0 1px 1px;\n -ms-flex-order: -1;\n order: -1; }\n #optimole-app .file-label {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n -ms-flex-pack: start;\n justify-content: flex-start;\n overflow: hidden;\n position: relative; }\n #optimole-app .file-label:hover .file-cta {\n background-color: #eeeeee;\n color: #363636; }\n #optimole-app .file-label:hover .file-name {\n border-color: #d5d5d5; }\n #optimole-app .file-label:active .file-cta {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .file-label:active .file-name {\n border-color: #cfcfcf; }\n #optimole-app .file-input {\n height: 100%;\n left: 0;\n opacity: 0;\n outline: none;\n position: absolute;\n top: 0;\n width: 100%; }\n #optimole-app .file-cta,\n #optimole-app .file-name {\n border-color: #dbdbdb;\n border-radius: 4px;\n font-size: 1em;\n padding-left: 1em;\n padding-right: 1em;\n white-space: nowrap; }\n #optimole-app .file-cta {\n background-color: whitesmoke;\n color: #4a4a4a; }\n #optimole-app .file-name {\n border-color: #dbdbdb;\n border-style: solid;\n border-width: 1px 1px 1px 0;\n display: block;\n max-width: 16em;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis; }\n #optimole-app .file-icon {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n height: 1em;\n -ms-flex-pack: center;\n justify-content: center;\n margin-right: 0.5em;\n width: 1em; }\n #optimole-app .file-icon .fa {\n font-size: 14px; }\n #optimole-app .label {\n color: #363636;\n display: block;\n font-size: 1rem;\n font-weight: 700; }\n #optimole-app .label:not(:last-child) {\n margin-bottom: 0.5em; }\n #optimole-app .label.is-small {\n font-size: 0.75rem; }\n #optimole-app .label.is-medium {\n font-size: 1.25rem; }\n #optimole-app .label.is-large {\n font-size: 1.5rem; }\n #optimole-app .help {\n display: block;\n font-size: 0.75rem;\n margin-top: 0.25rem; }\n #optimole-app .help.is-white {\n color: white; }\n #optimole-app .help.is-black {\n color: #0a0a0a; }\n #optimole-app .help.is-light {\n color: whitesmoke; }\n #optimole-app .help.is-dark {\n color: #363636; }\n #optimole-app .help.is-primary {\n color: #EF686B; }\n #optimole-app .help.is-link {\n color: #3273dc; }\n #optimole-app .help.is-info {\n color: #5180C1; }\n #optimole-app .help.is-success {\n color: #34a85e; }\n #optimole-app .help.is-warning {\n color: #ffdd57; }\n #optimole-app .help.is-danger {\n color: #D54222; }\n #optimole-app .field:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .field.has-addons {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .field.has-addons .control:not(:last-child) {\n margin-right: -1px; }\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .button,\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .input,\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .select select {\n border-radius: 0; }\n #optimole-app .field.has-addons .control:first-child:not(:only-child) .button,\n #optimole-app .field.has-addons .control:first-child:not(:only-child) .input,\n #optimole-app .field.has-addons .control:first-child:not(:only-child) .select select {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .field.has-addons .control:last-child:not(:only-child) .button,\n #optimole-app .field.has-addons .control:last-child:not(:only-child) .input,\n #optimole-app .field.has-addons .control:last-child:not(:only-child) .select select {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .field.has-addons .control .button:not([disabled]):hover, #optimole-app .field.has-addons .control .button:not([disabled]).is-hovered,\n #optimole-app .field.has-addons .control .input:not([disabled]):hover,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-hovered,\n #optimole-app .field.has-addons .control .select select:not([disabled]):hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-hovered {\n z-index: 2; }\n #optimole-app .field.has-addons .control .button:not([disabled]):focus, #optimole-app .field.has-addons .control .button:not([disabled]).is-focused, #optimole-app .field.has-addons .control .button:not([disabled]):active, #optimole-app .field.has-addons .control .button:not([disabled]).is-active,\n #optimole-app .field.has-addons .control .input:not([disabled]):focus,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-focused,\n #optimole-app .field.has-addons .control .input:not([disabled]):active,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-active,\n #optimole-app .field.has-addons .control .select select:not([disabled]):focus,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-focused,\n #optimole-app .field.has-addons .control .select select:not([disabled]):active,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-active {\n z-index: 3; }\n #optimole-app .field.has-addons .control .button:not([disabled]):focus:hover, #optimole-app .field.has-addons .control .button:not([disabled]).is-focused:hover, #optimole-app .field.has-addons .control .button:not([disabled]):active:hover, #optimole-app .field.has-addons .control .button:not([disabled]).is-active:hover,\n #optimole-app .field.has-addons .control .input:not([disabled]):focus:hover,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-focused:hover,\n #optimole-app .field.has-addons .control .input:not([disabled]):active:hover,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-active:hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]):focus:hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-focused:hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]):active:hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-active:hover {\n z-index: 4; }\n #optimole-app .field.has-addons .control.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .field.has-addons.has-addons-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .field.has-addons.has-addons-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .field.has-addons.has-addons-fullwidth .control {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .field.is-grouped {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .field.is-grouped > .control {\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .field.is-grouped > .control:not(:last-child) {\n margin-bottom: 0;\n margin-right: 0.75rem; }\n #optimole-app .field.is-grouped > .control.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field.is-grouped.is-grouped-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .field.is-grouped.is-grouped-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .field.is-grouped.is-grouped-multiline {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .field.is-grouped.is-grouped-multiline > .control:last-child, #optimole-app .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .field.is-grouped.is-grouped-multiline:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .field.is-grouped.is-grouped-multiline:not(:last-child) {\n margin-bottom: 0; }\n @media screen and (min-width: 769px), print {\n #optimole-app .field.is-horizontal {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .field-label .label {\n font-size: inherit; }\n @media screen and (max-width: 768px) {\n #optimole-app .field-label {\n margin-bottom: 0.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .field-label {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-right: 1.5rem;\n text-align: right; }\n #optimole-app .field-label.is-small {\n font-size: 0.75rem;\n padding-top: 0.375em; }\n #optimole-app .field-label.is-normal {\n padding-top: 0.375em; }\n #optimole-app .field-label.is-medium {\n font-size: 1.25rem;\n padding-top: 0.375em; }\n #optimole-app .field-label.is-large {\n font-size: 1.5rem;\n padding-top: 0.375em; } }\n #optimole-app .field-body .field .field {\n margin-bottom: 0; }\n @media screen and (min-width: 769px), print {\n #optimole-app .field-body {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 5;\n flex-grow: 5;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field-body .field {\n margin-bottom: 0; }\n #optimole-app .field-body > .field {\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field-body > .field:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .field-body > .field:not(:last-child) {\n margin-right: 0.75rem; } }\n #optimole-app .control {\n box-sizing: border-box;\n clear: both;\n font-size: 1rem;\n position: relative;\n text-align: left; }\n #optimole-app .control.has-icons-left .input:focus ~ .icon,\n #optimole-app .control.has-icons-left .select:focus ~ .icon, #optimole-app .control.has-icons-right .input:focus ~ .icon,\n #optimole-app .control.has-icons-right .select:focus ~ .icon {\n color: #7a7a7a; }\n #optimole-app .control.has-icons-left .input.is-small ~ .icon,\n #optimole-app .control.has-icons-left .select.is-small ~ .icon, #optimole-app .control.has-icons-right .input.is-small ~ .icon,\n #optimole-app .control.has-icons-right .select.is-small ~ .icon {\n font-size: 0.75rem; }\n #optimole-app .control.has-icons-left .input.is-medium ~ .icon,\n #optimole-app .control.has-icons-left .select.is-medium ~ .icon, #optimole-app .control.has-icons-right .input.is-medium ~ .icon,\n #optimole-app .control.has-icons-right .select.is-medium ~ .icon {\n font-size: 1.25rem; }\n #optimole-app .control.has-icons-left .input.is-large ~ .icon,\n #optimole-app .control.has-icons-left .select.is-large ~ .icon, #optimole-app .control.has-icons-right .input.is-large ~ .icon,\n #optimole-app .control.has-icons-right .select.is-large ~ .icon {\n font-size: 1.5rem; }\n #optimole-app .control.has-icons-left .icon, #optimole-app .control.has-icons-right .icon {\n color: #dbdbdb;\n height: 2.25em;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 2.25em;\n z-index: 4; }\n #optimole-app .control.has-icons-left .input,\n #optimole-app .control.has-icons-left .select select {\n padding-left: 2.25em; }\n #optimole-app .control.has-icons-left .icon.is-left {\n left: 0; }\n #optimole-app .control.has-icons-right .input,\n #optimole-app .control.has-icons-right .select select {\n padding-right: 2.25em; }\n #optimole-app .control.has-icons-right .icon.is-right {\n right: 0; }\n #optimole-app .control.is-loading::after {\n position: absolute !important;\n right: 0.625em;\n top: 0.625em;\n z-index: 4; }\n #optimole-app .control.is-loading.is-small:after {\n font-size: 0.75rem; }\n #optimole-app .control.is-loading.is-medium:after {\n font-size: 1.25rem; }\n #optimole-app .control.is-loading.is-large:after {\n font-size: 1.5rem; }\n #optimole-app .icon {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: center;\n justify-content: center;\n height: 1.5rem;\n width: 1.5rem; }\n #optimole-app .icon.is-small {\n height: 1rem;\n width: 1rem; }\n #optimole-app .icon.is-medium {\n height: 2rem;\n width: 2rem; }\n #optimole-app .icon.is-large {\n height: 3rem;\n width: 3rem; }\n #optimole-app .image {\n display: block;\n position: relative; }\n #optimole-app .image img {\n display: block;\n height: auto;\n width: 100%; }\n #optimole-app .image img.is-rounded {\n border-radius: 290486px; }\n #optimole-app .image.is-square img,\n #optimole-app .image.is-square .has-ratio, #optimole-app .image.is-1by1 img,\n #optimole-app .image.is-1by1 .has-ratio, #optimole-app .image.is-5by4 img,\n #optimole-app .image.is-5by4 .has-ratio, #optimole-app .image.is-4by3 img,\n #optimole-app .image.is-4by3 .has-ratio, #optimole-app .image.is-3by2 img,\n #optimole-app .image.is-3by2 .has-ratio, #optimole-app .image.is-5by3 img,\n #optimole-app .image.is-5by3 .has-ratio, #optimole-app .image.is-16by9 img,\n #optimole-app .image.is-16by9 .has-ratio, #optimole-app .image.is-2by1 img,\n #optimole-app .image.is-2by1 .has-ratio, #optimole-app .image.is-3by1 img,\n #optimole-app .image.is-3by1 .has-ratio, #optimole-app .image.is-4by5 img,\n #optimole-app .image.is-4by5 .has-ratio, #optimole-app .image.is-3by4 img,\n #optimole-app .image.is-3by4 .has-ratio, #optimole-app .image.is-2by3 img,\n #optimole-app .image.is-2by3 .has-ratio, #optimole-app .image.is-3by5 img,\n #optimole-app .image.is-3by5 .has-ratio, #optimole-app .image.is-9by16 img,\n #optimole-app .image.is-9by16 .has-ratio, #optimole-app .image.is-1by2 img,\n #optimole-app .image.is-1by2 .has-ratio, #optimole-app .image.is-1by3 img,\n #optimole-app .image.is-1by3 .has-ratio {\n height: 100%;\n width: 100%; }\n #optimole-app .image.is-square, #optimole-app .image.is-1by1 {\n padding-top: 100%; }\n #optimole-app .image.is-5by4 {\n padding-top: 80%; }\n #optimole-app .image.is-4by3 {\n padding-top: 75%; }\n #optimole-app .image.is-3by2 {\n padding-top: 66.6666%; }\n #optimole-app .image.is-5by3 {\n padding-top: 60%; }\n #optimole-app .image.is-16by9 {\n padding-top: 56.25%; }\n #optimole-app .image.is-2by1 {\n padding-top: 50%; }\n #optimole-app .image.is-3by1 {\n padding-top: 33.3333%; }\n #optimole-app .image.is-4by5 {\n padding-top: 125%; }\n #optimole-app .image.is-3by4 {\n padding-top: 133.3333%; }\n #optimole-app .image.is-2by3 {\n padding-top: 150%; }\n #optimole-app .image.is-3by5 {\n padding-top: 166.6666%; }\n #optimole-app .image.is-9by16 {\n padding-top: 177.7777%; }\n #optimole-app .image.is-1by2 {\n padding-top: 200%; }\n #optimole-app .image.is-1by3 {\n padding-top: 300%; }\n #optimole-app .image.is-16x16 {\n height: 16px;\n width: 16px; }\n #optimole-app .image.is-24x24 {\n height: 24px;\n width: 24px; }\n #optimole-app .image.is-32x32 {\n height: 32px;\n width: 32px; }\n #optimole-app .image.is-48x48 {\n height: 48px;\n width: 48px; }\n #optimole-app .image.is-64x64 {\n height: 64px;\n width: 64px; }\n #optimole-app .image.is-96x96 {\n height: 96px;\n width: 96px; }\n #optimole-app .image.is-128x128 {\n height: 128px;\n width: 128px; }\n #optimole-app .notification {\n background-color: whitesmoke;\n border-radius: 4px;\n padding: 1.25rem 2.5rem 1.25rem 1.5rem;\n position: relative; }\n #optimole-app .notification a:not(.button):not(.dropdown-item) {\n color: currentColor;\n text-decoration: underline; }\n #optimole-app .notification strong {\n color: currentColor; }\n #optimole-app .notification code,\n #optimole-app .notification pre {\n background: white; }\n #optimole-app .notification pre code {\n background: transparent; }\n #optimole-app .notification > .delete {\n position: absolute;\n right: 0.5rem;\n top: 0.5rem; }\n #optimole-app .notification .title,\n #optimole-app .notification .subtitle,\n #optimole-app .notification .content {\n color: currentColor; }\n #optimole-app .notification.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .notification.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .notification.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .notification.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .notification.is-primary {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .notification.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .notification.is-info {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .notification.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .notification.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .notification.is-danger {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .progress {\n -moz-appearance: none;\n -webkit-appearance: none;\n border: none;\n border-radius: 290486px;\n display: block;\n height: 1rem;\n overflow: hidden;\n padding: 0;\n width: 100%; }\n #optimole-app .progress::-webkit-progress-bar {\n background-color: #dbdbdb; }\n #optimole-app .progress::-webkit-progress-value {\n background-color: #4a4a4a; }\n #optimole-app .progress::-moz-progress-bar {\n background-color: #4a4a4a; }\n #optimole-app .progress::-ms-fill {\n background-color: #4a4a4a;\n border: none; }\n #optimole-app .progress:indeterminate {\n animation-duration: 1.5s;\n animation-iteration-count: infinite;\n animation-name: moveIndeterminate;\n animation-timing-function: linear;\n background-color: #dbdbdb;\n background-image: linear-gradient(to right, #4a4a4a 30%, #dbdbdb 30%);\n background-position: top left;\n background-repeat: no-repeat;\n background-size: 150% 150%; }\n #optimole-app .progress:indeterminate::-webkit-progress-bar {\n background-color: transparent; }\n #optimole-app .progress:indeterminate::-moz-progress-bar {\n background-color: transparent; }\n #optimole-app .progress.is-white::-webkit-progress-value {\n background-color: white; }\n #optimole-app .progress.is-white::-moz-progress-bar {\n background-color: white; }\n #optimole-app .progress.is-white::-ms-fill {\n background-color: white; }\n #optimole-app .progress.is-white:indeterminate {\n background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-black::-webkit-progress-value {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black::-moz-progress-bar {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black::-ms-fill {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black:indeterminate {\n background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-light::-webkit-progress-value {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light::-moz-progress-bar {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light::-ms-fill {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light:indeterminate {\n background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-dark::-webkit-progress-value {\n background-color: #363636; }\n #optimole-app .progress.is-dark::-moz-progress-bar {\n background-color: #363636; }\n #optimole-app .progress.is-dark::-ms-fill {\n background-color: #363636; }\n #optimole-app .progress.is-dark:indeterminate {\n background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-primary::-webkit-progress-value {\n background-color: #EF686B; }\n #optimole-app .progress.is-primary::-moz-progress-bar {\n background-color: #EF686B; }\n #optimole-app .progress.is-primary::-ms-fill {\n background-color: #EF686B; }\n #optimole-app .progress.is-primary:indeterminate {\n background-image: linear-gradient(to right, #EF686B 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-link::-webkit-progress-value {\n background-color: #3273dc; }\n #optimole-app .progress.is-link::-moz-progress-bar {\n background-color: #3273dc; }\n #optimole-app .progress.is-link::-ms-fill {\n background-color: #3273dc; }\n #optimole-app .progress.is-link:indeterminate {\n background-image: linear-gradient(to right, #3273dc 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-info::-webkit-progress-value {\n background-color: #5180C1; }\n #optimole-app .progress.is-info::-moz-progress-bar {\n background-color: #5180C1; }\n #optimole-app .progress.is-info::-ms-fill {\n background-color: #5180C1; }\n #optimole-app .progress.is-info:indeterminate {\n background-image: linear-gradient(to right, #5180C1 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-success::-webkit-progress-value {\n background-color: #34a85e; }\n #optimole-app .progress.is-success::-moz-progress-bar {\n background-color: #34a85e; }\n #optimole-app .progress.is-success::-ms-fill {\n background-color: #34a85e; }\n #optimole-app .progress.is-success:indeterminate {\n background-image: linear-gradient(to right, #34a85e 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-warning::-webkit-progress-value {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning::-moz-progress-bar {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning::-ms-fill {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning:indeterminate {\n background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-danger::-webkit-progress-value {\n background-color: #D54222; }\n #optimole-app .progress.is-danger::-moz-progress-bar {\n background-color: #D54222; }\n #optimole-app .progress.is-danger::-ms-fill {\n background-color: #D54222; }\n #optimole-app .progress.is-danger:indeterminate {\n background-image: linear-gradient(to right, #D54222 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-small {\n height: 0.75rem; }\n #optimole-app .progress.is-medium {\n height: 1.25rem; }\n #optimole-app .progress.is-large {\n height: 1.5rem; }\n\n@keyframes moveIndeterminate {\n from {\n background-position: 200% 0; }\n to {\n background-position: -200% 0; } }\n #optimole-app .table {\n background-color: white;\n color: #363636; }\n #optimole-app .table td,\n #optimole-app .table th {\n border: 1px solid #dbdbdb;\n border-width: 0 0 1px;\n padding: 0.5em 0.75em;\n vertical-align: top; }\n #optimole-app .table td.is-white,\n #optimole-app .table th.is-white {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .table td.is-black,\n #optimole-app .table th.is-black {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .table td.is-light,\n #optimole-app .table th.is-light {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .table td.is-dark,\n #optimole-app .table th.is-dark {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .table td.is-primary,\n #optimole-app .table th.is-primary {\n background-color: #EF686B;\n border-color: #EF686B;\n color: #fff; }\n #optimole-app .table td.is-link,\n #optimole-app .table th.is-link {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .table td.is-info,\n #optimole-app .table th.is-info {\n background-color: #5180C1;\n border-color: #5180C1;\n color: #fff; }\n #optimole-app .table td.is-success,\n #optimole-app .table th.is-success {\n background-color: #34a85e;\n border-color: #34a85e;\n color: #fff; }\n #optimole-app .table td.is-warning,\n #optimole-app .table th.is-warning {\n background-color: #ffdd57;\n border-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .table td.is-danger,\n #optimole-app .table th.is-danger {\n background-color: #D54222;\n border-color: #D54222;\n color: #fff; }\n #optimole-app .table td.is-narrow,\n #optimole-app .table th.is-narrow {\n white-space: nowrap;\n width: 1%; }\n #optimole-app .table td.is-selected,\n #optimole-app .table th.is-selected {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .table td.is-selected a,\n #optimole-app .table td.is-selected strong,\n #optimole-app .table th.is-selected a,\n #optimole-app .table th.is-selected strong {\n color: currentColor; }\n #optimole-app .table th {\n color: #363636;\n text-align: left; }\n #optimole-app .table tr.is-selected {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .table tr.is-selected a,\n #optimole-app .table tr.is-selected strong {\n color: currentColor; }\n #optimole-app .table tr.is-selected td,\n #optimole-app .table tr.is-selected th {\n border-color: #fff;\n color: currentColor; }\n #optimole-app .table thead {\n background-color: transparent; }\n #optimole-app .table thead td,\n #optimole-app .table thead th {\n border-width: 0 0 2px;\n color: #363636; }\n #optimole-app .table tfoot {\n background-color: transparent; }\n #optimole-app .table tfoot td,\n #optimole-app .table tfoot th {\n border-width: 2px 0 0;\n color: #363636; }\n #optimole-app .table tbody {\n background-color: transparent; }\n #optimole-app .table tbody tr:last-child td,\n #optimole-app .table tbody tr:last-child th {\n border-bottom-width: 0; }\n #optimole-app .table.is-bordered td,\n #optimole-app .table.is-bordered th {\n border-width: 1px; }\n #optimole-app .table.is-bordered tr:last-child td,\n #optimole-app .table.is-bordered tr:last-child th {\n border-bottom-width: 1px; }\n #optimole-app .table.is-fullwidth {\n width: 100%; }\n #optimole-app .table.is-hoverable tbody tr:not(.is-selected):hover {\n background-color: #fafafa; }\n #optimole-app .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {\n background-color: #fafafa; }\n #optimole-app .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {\n background-color: whitesmoke; }\n #optimole-app .table.is-narrow td,\n #optimole-app .table.is-narrow th {\n padding: 0.25em 0.5em; }\n #optimole-app .table.is-striped tbody tr:not(.is-selected):nth-child(even) {\n background-color: #fafafa; }\n #optimole-app .table-container {\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n overflow-y: hidden;\n max-width: 100%; }\n #optimole-app .tags {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .tags .tag {\n margin-bottom: 0.5rem; }\n #optimole-app .tags .tag:not(:last-child) {\n margin-right: 0.5rem; }\n #optimole-app .tags:last-child {\n margin-bottom: -0.5rem; }\n #optimole-app .tags:not(:last-child) {\n margin-bottom: 1rem; }\n #optimole-app .tags.are-medium .tag:not(.is-normal):not(.is-large) {\n font-size: 1rem; }\n #optimole-app .tags.are-large .tag:not(.is-normal):not(.is-medium) {\n font-size: 1.25rem; }\n #optimole-app .tags.has-addons .tag {\n margin-right: 0; }\n #optimole-app .tags.has-addons .tag:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .tags.has-addons .tag:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .tags.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .tags.is-centered .tag {\n margin-right: 0.25rem;\n margin-left: 0.25rem; }\n #optimole-app .tags.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .tags.is-right .tag:not(:first-child) {\n margin-left: 0.5rem; }\n #optimole-app .tags.is-right .tag:not(:last-child) {\n margin-right: 0; }\n #optimole-app .tags.has-addons .tag {\n margin-right: 0; }\n #optimole-app .tags.has-addons .tag:not(:first-child) {\n margin-left: 0;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .tags.has-addons .tag:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .tag:not(body) {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n border-radius: 4px;\n color: #4a4a4a;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 0.75rem;\n height: 2em;\n -ms-flex-pack: center;\n justify-content: center;\n line-height: 1.5;\n padding-left: 0.75em;\n padding-right: 0.75em;\n white-space: nowrap; }\n #optimole-app .tag:not(body) .delete {\n margin-left: 0.25rem;\n margin-right: -0.375rem; }\n #optimole-app .tag:not(body).is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .tag:not(body).is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .tag:not(body).is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .tag:not(body).is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .tag:not(body).is-primary {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .tag:not(body).is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .tag:not(body).is-info {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .tag:not(body).is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .tag:not(body).is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .tag:not(body).is-danger {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .tag:not(body).is-normal {\n font-size: 0.75rem; }\n #optimole-app .tag:not(body).is-medium {\n font-size: 1rem; }\n #optimole-app .tag:not(body).is-large {\n font-size: 1.25rem; }\n #optimole-app .tag:not(body) .icon:first-child:not(:last-child) {\n margin-left: -0.375em;\n margin-right: 0.1875em; }\n #optimole-app .tag:not(body) .icon:last-child:not(:first-child) {\n margin-left: 0.1875em;\n margin-right: -0.375em; }\n #optimole-app .tag:not(body) .icon:first-child:last-child {\n margin-left: -0.375em;\n margin-right: -0.375em; }\n #optimole-app .tag:not(body).is-delete {\n margin-left: 1px;\n padding: 0;\n position: relative;\n width: 2em; }\n #optimole-app .tag:not(body).is-delete::before, #optimole-app .tag:not(body).is-delete::after {\n background-color: currentColor;\n content: "";\n display: block;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform-origin: center center; }\n #optimole-app .tag:not(body).is-delete::before {\n height: 1px;\n width: 50%; }\n #optimole-app .tag:not(body).is-delete::after {\n height: 50%;\n width: 1px; }\n #optimole-app .tag:not(body).is-delete:hover, #optimole-app .tag:not(body).is-delete:focus {\n background-color: #e8e8e8; }\n #optimole-app .tag:not(body).is-delete:active {\n background-color: #dbdbdb; }\n #optimole-app .tag:not(body).is-rounded {\n border-radius: 290486px; }\n #optimole-app a.tag:hover {\n text-decoration: underline; }\n #optimole-app .title,\n #optimole-app .subtitle {\n word-break: break-word; }\n #optimole-app .title em,\n #optimole-app .title span,\n #optimole-app .subtitle em,\n #optimole-app .subtitle span {\n font-weight: inherit; }\n #optimole-app .title sub,\n #optimole-app .subtitle sub {\n font-size: 0.75em; }\n #optimole-app .title sup,\n #optimole-app .subtitle sup {\n font-size: 0.75em; }\n #optimole-app .title .tag,\n #optimole-app .subtitle .tag {\n vertical-align: middle; }\n #optimole-app .title {\n color: #363636;\n font-size: 2rem;\n font-weight: 600;\n line-height: 1.125; }\n #optimole-app .title strong {\n color: inherit;\n font-weight: inherit; }\n #optimole-app .title + .highlight {\n margin-top: -0.75rem; }\n #optimole-app .title:not(.is-spaced) + .subtitle {\n margin-top: -1.25rem; }\n #optimole-app .title.is-1 {\n font-size: 3rem; }\n #optimole-app .title.is-2 {\n font-size: 2.5rem; }\n #optimole-app .title.is-3 {\n font-size: 2rem; }\n #optimole-app .title.is-4 {\n font-size: 1.5rem; }\n #optimole-app .title.is-5 {\n font-size: 1.25rem; }\n #optimole-app .title.is-6 {\n font-size: 1rem; }\n #optimole-app .title.is-7 {\n font-size: 0.75rem; }\n #optimole-app .subtitle {\n color: #4a4a4a;\n font-size: 1.25rem;\n font-weight: 400;\n line-height: 1.25; }\n #optimole-app .subtitle strong {\n color: #363636;\n font-weight: 600; }\n #optimole-app .subtitle:not(.is-spaced) + .title {\n margin-top: -1.25rem; }\n #optimole-app .subtitle.is-1 {\n font-size: 3rem; }\n #optimole-app .subtitle.is-2 {\n font-size: 2.5rem; }\n #optimole-app .subtitle.is-3 {\n font-size: 2rem; }\n #optimole-app .subtitle.is-4 {\n font-size: 1.5rem; }\n #optimole-app .subtitle.is-5 {\n font-size: 1.25rem; }\n #optimole-app .subtitle.is-6 {\n font-size: 1rem; }\n #optimole-app .subtitle.is-7 {\n font-size: 0.75rem; }\n #optimole-app .heading {\n display: block;\n font-size: 11px;\n letter-spacing: 1px;\n margin-bottom: 5px;\n text-transform: uppercase; }\n #optimole-app .highlight {\n font-weight: 400;\n max-width: 100%;\n overflow: hidden;\n padding: 0; }\n #optimole-app .highlight pre {\n overflow: auto;\n max-width: 100%; }\n #optimole-app .number {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n border-radius: 290486px;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 1.25rem;\n height: 2em;\n -ms-flex-pack: center;\n justify-content: center;\n margin-right: 1.5rem;\n min-width: 2.5em;\n padding: 0.25rem 0.5rem;\n text-align: center;\n vertical-align: top; }\n #optimole-app .breadcrumb {\n font-size: 1rem;\n white-space: nowrap; }\n #optimole-app .breadcrumb a {\n -ms-flex-align: center;\n align-items: center;\n color: #3273dc;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0 0.75em; }\n #optimole-app .breadcrumb a:hover {\n color: #363636; }\n #optimole-app .breadcrumb li {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .breadcrumb li:first-child a {\n padding-left: 0; }\n #optimole-app .breadcrumb li.is-active a {\n color: #363636;\n cursor: default;\n pointer-events: none; }\n #optimole-app .breadcrumb li + li::before {\n color: #b5b5b5;\n content: "/"; }\n #optimole-app .breadcrumb ul,\n #optimole-app .breadcrumb ol {\n -ms-flex-align: start;\n align-items: flex-start;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .breadcrumb .icon:first-child {\n margin-right: 0.5em; }\n #optimole-app .breadcrumb .icon:last-child {\n margin-left: 0.5em; }\n #optimole-app .breadcrumb.is-centered ol,\n #optimole-app .breadcrumb.is-centered ul {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .breadcrumb.is-right ol,\n #optimole-app .breadcrumb.is-right ul {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .breadcrumb.is-small {\n font-size: 0.75rem; }\n #optimole-app .breadcrumb.is-medium {\n font-size: 1.25rem; }\n #optimole-app .breadcrumb.is-large {\n font-size: 1.5rem; }\n #optimole-app .breadcrumb.has-arrow-separator li + li::before {\n content: "\\2192"; }\n #optimole-app .breadcrumb.has-bullet-separator li + li::before {\n content: "\\2022"; }\n #optimole-app .breadcrumb.has-dot-separator li + li::before {\n content: "\\B7"; }\n #optimole-app .breadcrumb.has-succeeds-separator li + li::before {\n content: "\\227B"; }\n #optimole-app .card {\n background-color: white;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n color: #4a4a4a;\n max-width: 100%;\n position: relative; }\n #optimole-app .card-header {\n background-color: transparent;\n -ms-flex-align: stretch;\n align-items: stretch;\n box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .card-header-title {\n -ms-flex-align: center;\n align-items: center;\n color: #363636;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n font-weight: 700;\n padding: 0.75rem; }\n #optimole-app .card-header-title.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .card-header-icon {\n -ms-flex-align: center;\n align-items: center;\n cursor: pointer;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0.75rem; }\n #optimole-app .card-image {\n display: block;\n position: relative; }\n #optimole-app .card-content {\n background-color: transparent;\n padding: 1.5rem; }\n #optimole-app .card-footer {\n background-color: transparent;\n border-top: 1px solid #dbdbdb;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .card-footer-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0.75rem; }\n #optimole-app .card-footer-item:not(:last-child) {\n border-right: 1px solid #dbdbdb; }\n #optimole-app .card .media:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .dropdown {\n display: -ms-inline-flexbox;\n display: inline-flex;\n position: relative;\n vertical-align: top; }\n #optimole-app .dropdown.is-active .dropdown-menu, #optimole-app .dropdown.is-hoverable:hover .dropdown-menu {\n display: block; }\n #optimole-app .dropdown.is-right .dropdown-menu {\n left: auto;\n right: 0; }\n #optimole-app .dropdown.is-up .dropdown-menu {\n bottom: 100%;\n padding-bottom: 4px;\n padding-top: initial;\n top: auto; }\n #optimole-app .dropdown-menu {\n display: none;\n left: 0;\n min-width: 12rem;\n padding-top: 4px;\n position: absolute;\n top: 100%;\n z-index: 20; }\n #optimole-app .dropdown-content {\n background-color: white;\n border-radius: 4px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n padding-bottom: 0.5rem;\n padding-top: 0.5rem; }\n #optimole-app .dropdown-item {\n color: #4a4a4a;\n display: block;\n font-size: 0.875rem;\n line-height: 1.5;\n padding: 0.375rem 1rem;\n position: relative; }\n #optimole-app a.dropdown-item,\n #optimole-app button.dropdown-item {\n padding-right: 3rem;\n text-align: left;\n white-space: nowrap;\n width: 100%; }\n #optimole-app a.dropdown-item:hover,\n #optimole-app button.dropdown-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app a.dropdown-item.is-active,\n #optimole-app button.dropdown-item.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .dropdown-divider {\n background-color: #dbdbdb;\n border: none;\n display: block;\n height: 1px;\n margin: 0.5rem 0; }\n #optimole-app .level {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .level code {\n border-radius: 4px; }\n #optimole-app .level img {\n display: inline-block;\n vertical-align: top; }\n #optimole-app .level.is-mobile {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level.is-mobile .level-left,\n #optimole-app .level.is-mobile .level-right {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level.is-mobile .level-left + .level-right {\n margin-top: 0; }\n #optimole-app .level.is-mobile .level-item:not(:last-child) {\n margin-bottom: 0;\n margin-right: 0.75rem; }\n #optimole-app .level.is-mobile .level-item:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level > .level-item:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; } }\n #optimole-app .level-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .level-item .title,\n #optimole-app .level-item .subtitle {\n margin-bottom: 0; }\n @media screen and (max-width: 768px) {\n #optimole-app .level-item:not(:last-child) {\n margin-bottom: 0.75rem; } }\n #optimole-app .level-left,\n #optimole-app .level-right {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .level-left .level-item.is-flexible,\n #optimole-app .level-right .level-item.is-flexible {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-left .level-item:not(:last-child),\n #optimole-app .level-right .level-item:not(:last-child) {\n margin-right: 0.75rem; } }\n #optimole-app .level-left {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n @media screen and (max-width: 768px) {\n #optimole-app .level-left + .level-right {\n margin-top: 1.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-left {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .level-right {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-right {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .list {\n background-color: white;\n border-radius: 4px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }\n #optimole-app .list-item {\n display: block;\n padding: 0.5em 1em; }\n #optimole-app .list-item:not(a) {\n color: #4a4a4a; }\n #optimole-app .list-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px; }\n #optimole-app .list-item:last-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px; }\n #optimole-app .list-item:not(:last-child) {\n border-bottom: 1px solid #dbdbdb; }\n #optimole-app .list-item.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app a.list-item {\n background-color: whitesmoke;\n cursor: pointer; }\n #optimole-app .media {\n -ms-flex-align: start;\n align-items: flex-start;\n display: -ms-flexbox;\n display: flex;\n text-align: left; }\n #optimole-app .media .content:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .media .media {\n border-top: 1px solid rgba(219, 219, 219, 0.5);\n display: -ms-flexbox;\n display: flex;\n padding-top: 0.75rem; }\n #optimole-app .media .media .content:not(:last-child),\n #optimole-app .media .media .control:not(:last-child) {\n margin-bottom: 0.5rem; }\n #optimole-app .media .media .media {\n padding-top: 0.5rem; }\n #optimole-app .media .media .media + .media {\n margin-top: 0.5rem; }\n #optimole-app .media + .media {\n border-top: 1px solid rgba(219, 219, 219, 0.5);\n margin-top: 1rem;\n padding-top: 1rem; }\n #optimole-app .media.is-large + .media {\n margin-top: 1.5rem;\n padding-top: 1.5rem; }\n #optimole-app .media-left,\n #optimole-app .media-right {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .media-left {\n margin-right: 1rem; }\n #optimole-app .media-right {\n margin-left: 1rem; }\n #optimole-app .media-content {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n text-align: left; }\n @media screen and (max-width: 768px) {\n #optimole-app .media-content {\n overflow-x: auto; } }\n #optimole-app .menu {\n font-size: 1rem; }\n #optimole-app .menu.is-small {\n font-size: 0.75rem; }\n #optimole-app .menu.is-medium {\n font-size: 1.25rem; }\n #optimole-app .menu.is-large {\n font-size: 1.5rem; }\n #optimole-app .menu-list {\n line-height: 1.25; }\n #optimole-app .menu-list a {\n border-radius: 2px;\n color: #4a4a4a;\n display: block;\n padding: 0.5em 0.75em; }\n #optimole-app .menu-list a:hover {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .menu-list a.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .menu-list li ul {\n border-left: 1px solid #dbdbdb;\n margin: 0.75em;\n padding-left: 0.75em; }\n #optimole-app .menu-label {\n color: #7a7a7a;\n font-size: 0.75em;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n #optimole-app .menu-label:not(:first-child) {\n margin-top: 1em; }\n #optimole-app .menu-label:not(:last-child) {\n margin-bottom: 1em; }\n #optimole-app .message {\n background-color: whitesmoke;\n border-radius: 4px;\n font-size: 1rem; }\n #optimole-app .message strong {\n color: currentColor; }\n #optimole-app .message a:not(.button):not(.tag):not(.dropdown-item) {\n color: currentColor;\n text-decoration: underline; }\n #optimole-app .message.is-small {\n font-size: 0.75rem; }\n #optimole-app .message.is-medium {\n font-size: 1.25rem; }\n #optimole-app .message.is-large {\n font-size: 1.5rem; }\n #optimole-app .message.is-white {\n background-color: white; }\n #optimole-app .message.is-white .message-header {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .message.is-white .message-body {\n border-color: white;\n color: #4d4d4d; }\n #optimole-app .message.is-black {\n background-color: #fafafa; }\n #optimole-app .message.is-black .message-header {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .message.is-black .message-body {\n border-color: #0a0a0a;\n color: #090909; }\n #optimole-app .message.is-light {\n background-color: #fafafa; }\n #optimole-app .message.is-light .message-header {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .message.is-light .message-body {\n border-color: whitesmoke;\n color: #505050; }\n #optimole-app .message.is-dark {\n background-color: #fafafa; }\n #optimole-app .message.is-dark .message-header {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .message.is-dark .message-body {\n border-color: #363636;\n color: #2a2a2a; }\n #optimole-app .message.is-primary {\n background-color: #fef6f6; }\n #optimole-app .message.is-primary .message-header {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .message.is-primary .message-body {\n border-color: #EF686B;\n color: #bd2124; }\n #optimole-app .message.is-link {\n background-color: #f6f9fe; }\n #optimole-app .message.is-link .message-header {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .message.is-link .message-body {\n border-color: #3273dc;\n color: #22509a; }\n #optimole-app .message.is-info {\n background-color: #f7fafc; }\n #optimole-app .message.is-info .message-header {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .message.is-info .message-body {\n border-color: #5180C1;\n color: #36537c; }\n #optimole-app .message.is-success {\n background-color: #f7fdf9; }\n #optimole-app .message.is-success .message-header {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .message.is-success .message-body {\n border-color: #34a85e;\n color: #1b432a; }\n #optimole-app .message.is-warning {\n background-color: #fffdf5; }\n #optimole-app .message.is-warning .message-header {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .message.is-warning .message-body {\n border-color: #ffdd57;\n color: #3b3108; }\n #optimole-app .message.is-danger {\n background-color: #fef8f6; }\n #optimole-app .message.is-danger .message-header {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .message.is-danger .message-body {\n border-color: #D54222;\n color: #8d311d; }\n #optimole-app .message-header {\n -ms-flex-align: center;\n align-items: center;\n background-color: #4a4a4a;\n border-radius: 4px 4px 0 0;\n color: #fff;\n display: -ms-flexbox;\n display: flex;\n font-weight: 700;\n -ms-flex-pack: justify;\n justify-content: space-between;\n line-height: 1.25;\n padding: 0.75em 1em;\n position: relative; }\n #optimole-app .message-header .delete {\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-left: 0.75em; }\n #optimole-app .message-header + .message-body {\n border-width: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .message-body {\n border-color: #dbdbdb;\n border-radius: 4px;\n border-style: solid;\n border-width: 0 0 0 4px;\n color: #4a4a4a;\n padding: 1.25em 1.5em; }\n #optimole-app .message-body code,\n #optimole-app .message-body pre {\n background-color: white; }\n #optimole-app .message-body pre code {\n background-color: transparent; }\n #optimole-app .modal {\n -ms-flex-align: center;\n align-items: center;\n display: none;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n position: fixed;\n z-index: 40; }\n #optimole-app .modal.is-active {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .modal-background {\n background-color: rgba(10, 10, 10, 0.86); }\n #optimole-app .modal-content,\n #optimole-app .modal-card {\n margin: 0 20px;\n max-height: calc(100vh - 160px);\n overflow: auto;\n position: relative;\n width: 100%; }\n @media screen and (min-width: 769px), print {\n #optimole-app .modal-content,\n #optimole-app .modal-card {\n margin: 0 auto;\n max-height: calc(100vh - 40px);\n width: 640px; } }\n #optimole-app .modal-close {\n background: none;\n height: 40px;\n position: fixed;\n right: 20px;\n top: 20px;\n width: 40px; }\n #optimole-app .modal-card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n max-height: calc(100vh - 40px);\n overflow: hidden;\n -ms-overflow-y: visible; }\n #optimole-app .modal-card-head,\n #optimole-app .modal-card-foot {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 20px;\n position: relative; }\n #optimole-app .modal-card-head {\n border-bottom: 1px solid #dbdbdb;\n border-top-left-radius: 6px;\n border-top-right-radius: 6px; }\n #optimole-app .modal-card-title {\n color: #363636;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n font-size: 1.5rem;\n line-height: 1; }\n #optimole-app .modal-card-foot {\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n border-top: 1px solid #dbdbdb; }\n #optimole-app .modal-card-foot .button:not(:last-child) {\n margin-right: 10px; }\n #optimole-app .modal-card-body {\n -webkit-overflow-scrolling: touch;\n background-color: white;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n overflow: auto;\n padding: 20px; }\n #optimole-app .navbar {\n background-color: white;\n min-height: 3.25rem;\n position: relative;\n z-index: 30; }\n #optimole-app .navbar.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link {\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-white .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand .navbar-link::after {\n border-color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-burger {\n color: #0a0a0a; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-white .navbar-start > .navbar-item,\n #optimole-app .navbar.is-white .navbar-start .navbar-link,\n #optimole-app .navbar.is-white .navbar-end > .navbar-item,\n #optimole-app .navbar.is-white .navbar-end .navbar-link {\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-white .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-white .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-white .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-end .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-white .navbar-end .navbar-link::after {\n border-color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-dropdown a.navbar-item.is-active {\n background-color: white;\n color: #0a0a0a; } }\n #optimole-app .navbar.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link {\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-black .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand .navbar-link::after {\n border-color: white; }\n #optimole-app .navbar.is-black .navbar-burger {\n color: white; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-black .navbar-start > .navbar-item,\n #optimole-app .navbar.is-black .navbar-start .navbar-link,\n #optimole-app .navbar.is-black .navbar-end > .navbar-item,\n #optimole-app .navbar.is-black .navbar-end .navbar-link {\n color: white; }\n #optimole-app .navbar.is-black .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-black .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-black .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-black .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-end .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-black .navbar-end .navbar-link::after {\n border-color: white; }\n #optimole-app .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-dropdown a.navbar-item.is-active {\n background-color: #0a0a0a;\n color: white; } }\n #optimole-app .navbar.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link {\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-light .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand .navbar-link::after {\n border-color: #363636; }\n #optimole-app .navbar.is-light .navbar-burger {\n color: #363636; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-light .navbar-start > .navbar-item,\n #optimole-app .navbar.is-light .navbar-start .navbar-link,\n #optimole-app .navbar.is-light .navbar-end > .navbar-item,\n #optimole-app .navbar.is-light .navbar-end .navbar-link {\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-light .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-light .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-light .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-end .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-light .navbar-end .navbar-link::after {\n border-color: #363636; }\n #optimole-app .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #363636; } }\n #optimole-app .navbar.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link {\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-dark .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link::after {\n border-color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-burger {\n color: whitesmoke; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-dark .navbar-start > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link,\n #optimole-app .navbar.is-dark .navbar-end > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link {\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-dark .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-dark .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-dark .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link::after {\n border-color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-dropdown a.navbar-item.is-active {\n background-color: #363636;\n color: whitesmoke; } }\n #optimole-app .navbar.is-primary {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-primary .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link.is-active {\n background-color: #ed5154;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-primary .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-primary .navbar-start > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link,\n #optimole-app .navbar.is-primary .navbar-end > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-primary .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-primary .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-primary .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link.is-active {\n background-color: #ed5154;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #ed5154;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-dropdown a.navbar-item.is-active {\n background-color: #EF686B;\n color: #fff; } }\n #optimole-app .navbar.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-link .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-link .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-link .navbar-start > .navbar-item,\n #optimole-app .navbar.is-link .navbar-start .navbar-link,\n #optimole-app .navbar.is-link .navbar-end > .navbar-item,\n #optimole-app .navbar.is-link .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-link .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-link .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-link .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-end .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-link .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-dropdown a.navbar-item.is-active {\n background-color: #3273dc;\n color: #fff; } }\n #optimole-app .navbar.is-info {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-info .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link.is-active {\n background-color: #4173b7;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-info .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-info .navbar-start > .navbar-item,\n #optimole-app .navbar.is-info .navbar-start .navbar-link,\n #optimole-app .navbar.is-info .navbar-end > .navbar-item,\n #optimole-app .navbar.is-info .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-info .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-info .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-info .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-end .navbar-link.is-active {\n background-color: #4173b7;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-info .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #4173b7;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-dropdown a.navbar-item.is-active {\n background-color: #5180C1;\n color: #fff; } }\n #optimole-app .navbar.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-success .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-success .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-success .navbar-start > .navbar-item,\n #optimole-app .navbar.is-success .navbar-start .navbar-link,\n #optimole-app .navbar.is-success .navbar-end > .navbar-item,\n #optimole-app .navbar.is-success .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-success .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-success .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-success .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-end .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-success .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-dropdown a.navbar-item.is-active {\n background-color: #34a85e;\n color: #fff; } }\n #optimole-app .navbar.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-warning .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link::after {\n border-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-burger {\n color: rgba(0, 0, 0, 0.7); }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-warning .navbar-start > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link,\n #optimole-app .navbar.is-warning .navbar-end > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-warning .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-warning .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-warning .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link::after {\n border-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); } }\n #optimole-app .navbar.is-danger {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-danger .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-danger .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-danger .navbar-start > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link,\n #optimole-app .navbar.is-danger .navbar-end > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-danger .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-danger .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-danger .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {\n background-color: #D54222;\n color: #fff; } }\n #optimole-app .navbar > .container {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n min-height: 3.25rem;\n width: 100%; }\n #optimole-app .navbar.has-shadow {\n box-shadow: 0 2px 0 0 whitesmoke; }\n #optimole-app .navbar.is-fixed-bottom, #optimole-app .navbar.is-fixed-top {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom.has-shadow {\n box-shadow: 0 -2px 0 0 whitesmoke; }\n #optimole-app .navbar.is-fixed-top {\n top: 0; }\n #optimole-app html.has-navbar-fixed-top,\n #optimole-app body.has-navbar-fixed-top {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom,\n #optimole-app body.has-navbar-fixed-bottom {\n padding-bottom: 3.25rem; }\n #optimole-app .navbar-brand,\n #optimole-app .navbar-tabs {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n min-height: 3.25rem; }\n #optimole-app .navbar-brand a.navbar-item:hover {\n background-color: transparent; }\n #optimole-app .navbar-tabs {\n -webkit-overflow-scrolling: touch;\n max-width: 100vw;\n overflow-x: auto;\n overflow-y: hidden; }\n #optimole-app .navbar-burger {\n color: #4a4a4a;\n cursor: pointer;\n display: block;\n height: 3.25rem;\n position: relative;\n width: 3.25rem;\n margin-left: auto; }\n #optimole-app .navbar-burger span {\n background-color: currentColor;\n display: block;\n height: 1px;\n left: calc(50% - 8px);\n position: absolute;\n transform-origin: center;\n transition-duration: 86ms;\n transition-property: background-color, opacity, transform;\n transition-timing-function: ease-out;\n width: 16px; }\n #optimole-app .navbar-burger span:nth-child(1) {\n top: calc(50% - 6px); }\n #optimole-app .navbar-burger span:nth-child(2) {\n top: calc(50% - 1px); }\n #optimole-app .navbar-burger span:nth-child(3) {\n top: calc(50% + 4px); }\n #optimole-app .navbar-burger:hover {\n background-color: rgba(0, 0, 0, 0.05); }\n #optimole-app .navbar-burger.is-active span:nth-child(1) {\n transform: translateY(5px) rotate(45deg); }\n #optimole-app .navbar-burger.is-active span:nth-child(2) {\n opacity: 0; }\n #optimole-app .navbar-burger.is-active span:nth-child(3) {\n transform: translateY(-5px) rotate(-45deg); }\n #optimole-app .navbar-menu {\n display: none; }\n #optimole-app .navbar-item,\n #optimole-app .navbar-link {\n color: #4a4a4a;\n display: block;\n line-height: 1.5;\n padding: 0.5rem 0.75rem;\n position: relative; }\n #optimole-app .navbar-item .icon:only-child,\n #optimole-app .navbar-link .icon:only-child {\n margin-left: -0.25rem;\n margin-right: -0.25rem; }\n #optimole-app a.navbar-item,\n #optimole-app .navbar-link {\n cursor: pointer; }\n #optimole-app a.navbar-item:hover, #optimole-app a.navbar-item.is-active,\n #optimole-app .navbar-link:hover,\n #optimole-app .navbar-link.is-active {\n background-color: #fafafa;\n color: #3273dc; }\n #optimole-app .navbar-item {\n display: block;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .navbar-item img {\n max-height: 1.75rem; }\n #optimole-app .navbar-item.has-dropdown {\n padding: 0; }\n #optimole-app .navbar-item.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .navbar-item.is-tab {\n border-bottom: 1px solid transparent;\n min-height: 3.25rem;\n padding-bottom: calc(0.5rem - 1px); }\n #optimole-app .navbar-item.is-tab:hover {\n background-color: transparent;\n border-bottom-color: #3273dc; }\n #optimole-app .navbar-item.is-tab.is-active {\n background-color: transparent;\n border-bottom-color: #3273dc;\n border-bottom-style: solid;\n border-bottom-width: 3px;\n color: #3273dc;\n padding-bottom: calc(0.5rem - 3px); }\n #optimole-app .navbar-content {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .navbar-link:not(.is-arrowless) {\n padding-right: 2.5em; }\n #optimole-app .navbar-link:not(.is-arrowless)::after {\n border-color: #3273dc;\n margin-top: -0.375em;\n right: 1.125em; }\n #optimole-app .navbar-dropdown {\n font-size: 0.875rem;\n padding-bottom: 0.5rem;\n padding-top: 0.5rem; }\n #optimole-app .navbar-dropdown .navbar-item {\n padding-left: 1.5rem;\n padding-right: 1.5rem; }\n #optimole-app .navbar-divider {\n background-color: whitesmoke;\n border: none;\n display: none;\n height: 2px;\n margin: 0.5rem 0; }\n @media screen and (max-width: 1087px) {\n #optimole-app .navbar > .container {\n display: block; }\n #optimole-app .navbar-brand .navbar-item,\n #optimole-app .navbar-tabs .navbar-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-link::after {\n display: none; }\n #optimole-app .navbar-menu {\n background-color: white;\n box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);\n padding: 0.5rem 0; }\n #optimole-app .navbar-menu.is-active {\n display: block; }\n #optimole-app .navbar.is-fixed-bottom-touch, #optimole-app .navbar.is-fixed-top-touch {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom-touch {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom-touch.has-shadow {\n box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }\n #optimole-app .navbar.is-fixed-top-touch {\n top: 0; }\n #optimole-app .navbar.is-fixed-top .navbar-menu, #optimole-app .navbar.is-fixed-top-touch .navbar-menu {\n -webkit-overflow-scrolling: touch;\n max-height: calc(100vh - 3.25rem);\n overflow: auto; }\n #optimole-app html.has-navbar-fixed-top-touch,\n #optimole-app body.has-navbar-fixed-top-touch {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom-touch,\n #optimole-app body.has-navbar-fixed-bottom-touch {\n padding-bottom: 3.25rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar,\n #optimole-app .navbar-menu,\n #optimole-app .navbar-start,\n #optimole-app .navbar-end {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar {\n min-height: 3.25rem; }\n #optimole-app .navbar.is-spaced {\n padding: 1rem 2rem; }\n #optimole-app .navbar.is-spaced .navbar-start,\n #optimole-app .navbar.is-spaced .navbar-end {\n -ms-flex-align: center;\n align-items: center; }\n #optimole-app .navbar.is-spaced a.navbar-item,\n #optimole-app .navbar.is-spaced .navbar-link {\n border-radius: 4px; }\n #optimole-app .navbar.is-transparent a.navbar-item:hover, #optimole-app .navbar.is-transparent a.navbar-item.is-active,\n #optimole-app .navbar.is-transparent .navbar-link:hover,\n #optimole-app .navbar.is-transparent .navbar-link.is-active {\n background-color: transparent !important; }\n #optimole-app .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, #optimole-app .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {\n background-color: transparent !important; }\n #optimole-app .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #3273dc; }\n #optimole-app .navbar-burger {\n display: none; }\n #optimole-app .navbar-item,\n #optimole-app .navbar-link {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-item {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-item.has-dropdown {\n -ms-flex-align: stretch;\n align-items: stretch; }\n #optimole-app .navbar-item.has-dropdown-up .navbar-link::after {\n transform: rotate(135deg) translate(0.25em, -0.25em); }\n #optimole-app .navbar-item.has-dropdown-up .navbar-dropdown {\n border-bottom: 2px solid #dbdbdb;\n border-radius: 6px 6px 0 0;\n border-top: none;\n bottom: 100%;\n box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);\n top: auto; }\n #optimole-app .navbar-item.is-active .navbar-dropdown, #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown {\n display: block; }\n .navbar.is-spaced #optimole-app .navbar-item.is-active .navbar-dropdown, #optimole-app .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown, #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0); }\n #optimole-app .navbar-menu {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .navbar-start {\n -ms-flex-pack: start;\n justify-content: flex-start;\n margin-right: auto; }\n #optimole-app .navbar-end {\n -ms-flex-pack: end;\n justify-content: flex-end;\n margin-left: auto; }\n #optimole-app .navbar-dropdown {\n background-color: white;\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n border-top: 2px solid #dbdbdb;\n box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);\n display: none;\n font-size: 0.875rem;\n left: 0;\n min-width: 100%;\n position: absolute;\n top: 100%;\n z-index: 20; }\n #optimole-app .navbar-dropdown .navbar-item {\n padding: 0.375rem 1rem;\n white-space: nowrap; }\n #optimole-app .navbar-dropdown a.navbar-item {\n padding-right: 3rem; }\n #optimole-app .navbar-dropdown a.navbar-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #3273dc; }\n .navbar.is-spaced #optimole-app .navbar-dropdown, #optimole-app .navbar-dropdown.is-boxed {\n border-radius: 6px;\n border-top: none;\n box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n display: block;\n opacity: 0;\n pointer-events: none;\n top: calc(100% + (-4px));\n transform: translateY(-5px);\n transition-duration: 86ms;\n transition-property: opacity, transform; }\n #optimole-app .navbar-dropdown.is-right {\n left: auto;\n right: 0; }\n #optimole-app .navbar-divider {\n display: block; }\n #optimole-app .navbar > .container .navbar-brand,\n #optimole-app .container > .navbar .navbar-brand {\n margin-left: -.75rem; }\n #optimole-app .navbar > .container .navbar-menu,\n #optimole-app .container > .navbar .navbar-menu {\n margin-right: -.75rem; }\n #optimole-app .navbar.is-fixed-bottom-desktop, #optimole-app .navbar.is-fixed-top-desktop {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom-desktop {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom-desktop.has-shadow {\n box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }\n #optimole-app .navbar.is-fixed-top-desktop {\n top: 0; }\n #optimole-app html.has-navbar-fixed-top-desktop,\n #optimole-app body.has-navbar-fixed-top-desktop {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom-desktop,\n #optimole-app body.has-navbar-fixed-bottom-desktop {\n padding-bottom: 3.25rem; }\n #optimole-app html.has-spaced-navbar-fixed-top,\n #optimole-app body.has-spaced-navbar-fixed-top {\n padding-top: 5.25rem; }\n #optimole-app html.has-spaced-navbar-fixed-bottom,\n #optimole-app body.has-spaced-navbar-fixed-bottom {\n padding-bottom: 5.25rem; }\n #optimole-app a.navbar-item.is-active,\n #optimole-app .navbar-link.is-active {\n color: #0a0a0a; }\n #optimole-app a.navbar-item.is-active:not(:hover),\n #optimole-app .navbar-link.is-active:not(:hover) {\n background-color: transparent; }\n #optimole-app .navbar-item.has-dropdown:hover .navbar-link, #optimole-app .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #fafafa; } }\n #optimole-app .hero.is-fullheight-with-navbar {\n min-height: calc(100vh - 3.25rem); }\n #optimole-app .pagination {\n font-size: 1rem;\n margin: -0.25rem; }\n #optimole-app .pagination.is-small {\n font-size: 0.75rem; }\n #optimole-app .pagination.is-medium {\n font-size: 1.25rem; }\n #optimole-app .pagination.is-large {\n font-size: 1.5rem; }\n #optimole-app .pagination.is-rounded .pagination-previous,\n #optimole-app .pagination.is-rounded .pagination-next {\n padding-left: 1em;\n padding-right: 1em;\n border-radius: 290486px; }\n #optimole-app .pagination.is-rounded .pagination-link {\n border-radius: 290486px; }\n #optimole-app .pagination,\n #optimole-app .pagination-list {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n text-align: center; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis {\n font-size: 1em;\n padding-left: 0.5em;\n padding-right: 0.5em;\n -ms-flex-pack: center;\n justify-content: center;\n margin: 0.25rem;\n text-align: center; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link {\n border-color: #dbdbdb;\n color: #363636;\n min-width: 2.25em; }\n #optimole-app .pagination-previous:hover,\n #optimole-app .pagination-next:hover,\n #optimole-app .pagination-link:hover {\n border-color: #b5b5b5;\n color: #363636; }\n #optimole-app .pagination-previous:focus,\n #optimole-app .pagination-next:focus,\n #optimole-app .pagination-link:focus {\n border-color: #3273dc; }\n #optimole-app .pagination-previous:active,\n #optimole-app .pagination-next:active,\n #optimole-app .pagination-link:active {\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }\n #optimole-app .pagination-previous[disabled],\n #optimole-app .pagination-next[disabled],\n #optimole-app .pagination-link[disabled] {\n background-color: #dbdbdb;\n border-color: #dbdbdb;\n box-shadow: none;\n color: #7a7a7a;\n opacity: 0.5; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next {\n padding-left: 0.75em;\n padding-right: 0.75em;\n white-space: nowrap; }\n #optimole-app .pagination-link.is-current {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .pagination-ellipsis {\n color: #b5b5b5;\n pointer-events: none; }\n #optimole-app .pagination-list {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n @media screen and (max-width: 768px) {\n #optimole-app .pagination {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .pagination-list li {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .pagination-list {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n -ms-flex-pack: start;\n justify-content: flex-start;\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination-previous {\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination-next {\n -ms-flex-order: 3;\n order: 3; }\n #optimole-app .pagination {\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .pagination.is-centered .pagination-previous {\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination.is-centered .pagination-list {\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination.is-centered .pagination-next {\n -ms-flex-order: 3;\n order: 3; }\n #optimole-app .pagination.is-right .pagination-previous {\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination.is-right .pagination-next {\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination.is-right .pagination-list {\n -ms-flex-pack: end;\n justify-content: flex-end;\n -ms-flex-order: 3;\n order: 3; } }\n #optimole-app .panel {\n font-size: 1rem; }\n #optimole-app .panel:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .panel-heading,\n #optimole-app .panel-tabs,\n #optimole-app .panel-block {\n border-bottom: 1px solid #dbdbdb;\n border-left: 1px solid #dbdbdb;\n border-right: 1px solid #dbdbdb; }\n #optimole-app .panel-heading:first-child,\n #optimole-app .panel-tabs:first-child,\n #optimole-app .panel-block:first-child {\n border-top: 1px solid #dbdbdb; }\n #optimole-app .panel-heading {\n background-color: whitesmoke;\n border-radius: 4px 4px 0 0;\n color: #363636;\n font-size: 1.25em;\n font-weight: 300;\n line-height: 1.25;\n padding: 0.5em 0.75em; }\n #optimole-app .panel-tabs {\n -ms-flex-align: end;\n align-items: flex-end;\n display: -ms-flexbox;\n display: flex;\n font-size: 0.875em;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .panel-tabs a {\n border-bottom: 1px solid #dbdbdb;\n margin-bottom: -1px;\n padding: 0.5em; }\n #optimole-app .panel-tabs a.is-active {\n border-bottom-color: #4a4a4a;\n color: #363636; }\n #optimole-app .panel-list a {\n color: #4a4a4a; }\n #optimole-app .panel-list a:hover {\n color: #3273dc; }\n #optimole-app .panel-block {\n -ms-flex-align: center;\n align-items: center;\n color: #363636;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 0.5em 0.75em; }\n #optimole-app .panel-block input[type="checkbox"] {\n margin-right: 0.75em; }\n #optimole-app .panel-block > .control {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n width: 100%; }\n #optimole-app .panel-block.is-wrapped {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .panel-block.is-active {\n border-left-color: #3273dc;\n color: #363636; }\n #optimole-app .panel-block.is-active .panel-icon {\n color: #3273dc; }\n #optimole-app a.panel-block,\n #optimole-app label.panel-block {\n cursor: pointer; }\n #optimole-app a.panel-block:hover,\n #optimole-app label.panel-block:hover {\n background-color: whitesmoke; }\n #optimole-app .panel-icon {\n display: inline-block;\n font-size: 14px;\n height: 1em;\n line-height: 1em;\n text-align: center;\n vertical-align: top;\n width: 1em;\n color: #7a7a7a;\n margin-right: 0.75em; }\n #optimole-app .panel-icon .fa {\n font-size: inherit;\n line-height: inherit; }\n #optimole-app .tabs {\n -webkit-overflow-scrolling: touch;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n font-size: 1rem;\n -ms-flex-pack: justify;\n justify-content: space-between;\n overflow: hidden;\n overflow-x: auto;\n white-space: nowrap; }\n #optimole-app .tabs a {\n -ms-flex-align: center;\n align-items: center;\n border-bottom-color: #dbdbdb;\n border-bottom-style: solid;\n border-bottom-width: 1px;\n color: #4a4a4a;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: -1px;\n padding: 0.5em 1em;\n vertical-align: top; }\n #optimole-app .tabs a:hover {\n border-bottom-color: #363636;\n color: #363636; }\n #optimole-app .tabs li {\n display: block; }\n #optimole-app .tabs li.is-active a {\n border-bottom-color: #3273dc;\n color: #3273dc; }\n #optimole-app .tabs ul {\n -ms-flex-align: center;\n align-items: center;\n border-bottom-color: #dbdbdb;\n border-bottom-style: solid;\n border-bottom-width: 1px;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .tabs ul.is-left {\n padding-right: 0.75em; }\n #optimole-app .tabs ul.is-center {\n -ms-flex: none;\n flex: none;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0.75em;\n padding-right: 0.75em; }\n #optimole-app .tabs ul.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding-left: 0.75em; }\n #optimole-app .tabs .icon:first-child {\n margin-right: 0.5em; }\n #optimole-app .tabs .icon:last-child {\n margin-left: 0.5em; }\n #optimole-app .tabs.is-centered ul {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .tabs.is-right ul {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .tabs.is-boxed a {\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0; }\n #optimole-app .tabs.is-boxed a:hover {\n background-color: whitesmoke;\n border-bottom-color: #dbdbdb; }\n #optimole-app .tabs.is-boxed li.is-active a {\n background-color: white;\n border-color: #dbdbdb;\n border-bottom-color: transparent !important; }\n #optimole-app .tabs.is-fullwidth li {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .tabs.is-toggle a {\n border-color: #dbdbdb;\n border-style: solid;\n border-width: 1px;\n margin-bottom: 0;\n position: relative; }\n #optimole-app .tabs.is-toggle a:hover {\n background-color: whitesmoke;\n border-color: #b5b5b5;\n z-index: 2; }\n #optimole-app .tabs.is-toggle li + li {\n margin-left: -1px; }\n #optimole-app .tabs.is-toggle li:first-child a {\n border-radius: 4px 0 0 4px; }\n #optimole-app .tabs.is-toggle li:last-child a {\n border-radius: 0 4px 4px 0; }\n #optimole-app .tabs.is-toggle li.is-active a {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff;\n z-index: 1; }\n #optimole-app .tabs.is-toggle ul {\n border-bottom: none; }\n #optimole-app .tabs.is-toggle.is-toggle-rounded li:first-child a {\n border-bottom-left-radius: 290486px;\n border-top-left-radius: 290486px;\n padding-left: 1.25em; }\n #optimole-app .tabs.is-toggle.is-toggle-rounded li:last-child a {\n border-bottom-right-radius: 290486px;\n border-top-right-radius: 290486px;\n padding-right: 1.25em; }\n #optimole-app .tabs.is-small {\n font-size: 0.75rem; }\n #optimole-app .tabs.is-medium {\n font-size: 1.25rem; }\n #optimole-app .tabs.is-large {\n font-size: 1.5rem; }\n #optimole-app .column {\n display: block;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n padding: 0.75rem; }\n .columns.is-mobile > #optimole-app .column.is-narrow {\n -ms-flex: none;\n flex: none; }\n .columns.is-mobile > #optimole-app .column.is-full {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n .columns.is-mobile > #optimole-app .column.is-three-quarters {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n .columns.is-mobile > #optimole-app .column.is-two-thirds {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n .columns.is-mobile > #optimole-app .column.is-half {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n .columns.is-mobile > #optimole-app .column.is-one-third {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n .columns.is-mobile > #optimole-app .column.is-one-quarter {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n .columns.is-mobile > #optimole-app .column.is-one-fifth {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n .columns.is-mobile > #optimole-app .column.is-two-fifths {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n .columns.is-mobile > #optimole-app .column.is-three-fifths {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n .columns.is-mobile > #optimole-app .column.is-four-fifths {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n .columns.is-mobile > #optimole-app .column.is-offset-three-quarters {\n margin-left: 75%; }\n .columns.is-mobile > #optimole-app .column.is-offset-two-thirds {\n margin-left: 66.6666%; }\n .columns.is-mobile > #optimole-app .column.is-offset-half {\n margin-left: 50%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-third {\n margin-left: 33.3333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-quarter {\n margin-left: 25%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-fifth {\n margin-left: 20%; }\n .columns.is-mobile > #optimole-app .column.is-offset-two-fifths {\n margin-left: 40%; }\n .columns.is-mobile > #optimole-app .column.is-offset-three-fifths {\n margin-left: 60%; }\n .columns.is-mobile > #optimole-app .column.is-offset-four-fifths {\n margin-left: 80%; }\n .columns.is-mobile > #optimole-app .column.is-1 {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-1 {\n margin-left: 8.33333%; }\n .columns.is-mobile > #optimole-app .column.is-2 {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-2 {\n margin-left: 16.66667%; }\n .columns.is-mobile > #optimole-app .column.is-3 {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n .columns.is-mobile > #optimole-app .column.is-offset-3 {\n margin-left: 25%; }\n .columns.is-mobile > #optimole-app .column.is-4 {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-4 {\n margin-left: 33.33333%; }\n .columns.is-mobile > #optimole-app .column.is-5 {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-5 {\n margin-left: 41.66667%; }\n .columns.is-mobile > #optimole-app .column.is-6 {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n .columns.is-mobile > #optimole-app .column.is-offset-6 {\n margin-left: 50%; }\n .columns.is-mobile > #optimole-app .column.is-7 {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-7 {\n margin-left: 58.33333%; }\n .columns.is-mobile > #optimole-app .column.is-8 {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-8 {\n margin-left: 66.66667%; }\n .columns.is-mobile > #optimole-app .column.is-9 {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n .columns.is-mobile > #optimole-app .column.is-offset-9 {\n margin-left: 75%; }\n .columns.is-mobile > #optimole-app .column.is-10 {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-10 {\n margin-left: 83.33333%; }\n .columns.is-mobile > #optimole-app .column.is-11 {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-11 {\n margin-left: 91.66667%; }\n .columns.is-mobile > #optimole-app .column.is-12 {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n .columns.is-mobile > #optimole-app .column.is-offset-12 {\n margin-left: 100%; }\n @media screen and (max-width: 768px) {\n #optimole-app .column.is-narrow-mobile {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-mobile {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-mobile {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-mobile {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-mobile {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-mobile {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-mobile {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-mobile {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-mobile {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-mobile {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-mobile {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-mobile {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-mobile {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-mobile {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-mobile {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-mobile {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-mobile {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-mobile {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-mobile {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-mobile {\n margin-left: 80%; }\n #optimole-app .column.is-1-mobile {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-mobile {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-mobile {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-mobile {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-mobile {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-mobile {\n margin-left: 25%; }\n #optimole-app .column.is-4-mobile {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-mobile {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-mobile {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-mobile {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-mobile {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-mobile {\n margin-left: 50%; }\n #optimole-app .column.is-7-mobile {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-mobile {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-mobile {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-mobile {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-mobile {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-mobile {\n margin-left: 75%; }\n #optimole-app .column.is-10-mobile {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-mobile {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-mobile {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-mobile {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-mobile {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-mobile {\n margin-left: 100%; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .column.is-narrow, #optimole-app .column.is-narrow-tablet {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full, #optimole-app .column.is-full-tablet {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters, #optimole-app .column.is-three-quarters-tablet {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds, #optimole-app .column.is-two-thirds-tablet {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half, #optimole-app .column.is-half-tablet {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third, #optimole-app .column.is-one-third-tablet {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter, #optimole-app .column.is-one-quarter-tablet {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth, #optimole-app .column.is-one-fifth-tablet {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths, #optimole-app .column.is-two-fifths-tablet {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths, #optimole-app .column.is-three-fifths-tablet {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths, #optimole-app .column.is-four-fifths-tablet {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters, #optimole-app .column.is-offset-three-quarters-tablet {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds, #optimole-app .column.is-offset-two-thirds-tablet {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half, #optimole-app .column.is-offset-half-tablet {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third, #optimole-app .column.is-offset-one-third-tablet {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter, #optimole-app .column.is-offset-one-quarter-tablet {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth, #optimole-app .column.is-offset-one-fifth-tablet {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths, #optimole-app .column.is-offset-two-fifths-tablet {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths, #optimole-app .column.is-offset-three-fifths-tablet {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths, #optimole-app .column.is-offset-four-fifths-tablet {\n margin-left: 80%; }\n #optimole-app .column.is-1, #optimole-app .column.is-1-tablet {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1, #optimole-app .column.is-offset-1-tablet {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2, #optimole-app .column.is-2-tablet {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2, #optimole-app .column.is-offset-2-tablet {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3, #optimole-app .column.is-3-tablet {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3, #optimole-app .column.is-offset-3-tablet {\n margin-left: 25%; }\n #optimole-app .column.is-4, #optimole-app .column.is-4-tablet {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4, #optimole-app .column.is-offset-4-tablet {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5, #optimole-app .column.is-5-tablet {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5, #optimole-app .column.is-offset-5-tablet {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6, #optimole-app .column.is-6-tablet {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6, #optimole-app .column.is-offset-6-tablet {\n margin-left: 50%; }\n #optimole-app .column.is-7, #optimole-app .column.is-7-tablet {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7, #optimole-app .column.is-offset-7-tablet {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8, #optimole-app .column.is-8-tablet {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8, #optimole-app .column.is-offset-8-tablet {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9, #optimole-app .column.is-9-tablet {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9, #optimole-app .column.is-offset-9-tablet {\n margin-left: 75%; }\n #optimole-app .column.is-10, #optimole-app .column.is-10-tablet {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10, #optimole-app .column.is-offset-10-tablet {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11, #optimole-app .column.is-11-tablet {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11, #optimole-app .column.is-offset-11-tablet {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12, #optimole-app .column.is-12-tablet {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12, #optimole-app .column.is-offset-12-tablet {\n margin-left: 100%; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .column.is-narrow-touch {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-touch {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-touch {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-touch {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-touch {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-touch {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-touch {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-touch {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-touch {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-touch {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-touch {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-touch {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-touch {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-touch {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-touch {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-touch {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-touch {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-touch {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-touch {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-touch {\n margin-left: 80%; }\n #optimole-app .column.is-1-touch {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-touch {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-touch {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-touch {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-touch {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-touch {\n margin-left: 25%; }\n #optimole-app .column.is-4-touch {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-touch {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-touch {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-touch {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-touch {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-touch {\n margin-left: 50%; }\n #optimole-app .column.is-7-touch {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-touch {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-touch {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-touch {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-touch {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-touch {\n margin-left: 75%; }\n #optimole-app .column.is-10-touch {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-touch {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-touch {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-touch {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-touch {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-touch {\n margin-left: 100%; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .column.is-narrow-desktop {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-desktop {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-desktop {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-desktop {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-desktop {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-desktop {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-desktop {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-desktop {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-desktop {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-desktop {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-desktop {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-desktop {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-desktop {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-desktop {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-desktop {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-desktop {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-desktop {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-desktop {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-desktop {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-desktop {\n margin-left: 80%; }\n #optimole-app .column.is-1-desktop {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-desktop {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-desktop {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-desktop {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-desktop {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-desktop {\n margin-left: 25%; }\n #optimole-app .column.is-4-desktop {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-desktop {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-desktop {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-desktop {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-desktop {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-desktop {\n margin-left: 50%; }\n #optimole-app .column.is-7-desktop {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-desktop {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-desktop {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-desktop {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-desktop {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-desktop {\n margin-left: 75%; }\n #optimole-app .column.is-10-desktop {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-desktop {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-desktop {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-desktop {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-desktop {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-desktop {\n margin-left: 100%; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .column.is-narrow-widescreen {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-widescreen {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-widescreen {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-widescreen {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-widescreen {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-widescreen {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-widescreen {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-widescreen {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-widescreen {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-widescreen {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-widescreen {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-widescreen {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-widescreen {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-widescreen {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-widescreen {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-widescreen {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-widescreen {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-widescreen {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-widescreen {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-widescreen {\n margin-left: 80%; }\n #optimole-app .column.is-1-widescreen {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-widescreen {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-widescreen {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-widescreen {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-widescreen {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-widescreen {\n margin-left: 25%; }\n #optimole-app .column.is-4-widescreen {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-widescreen {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-widescreen {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-widescreen {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-widescreen {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-widescreen {\n margin-left: 50%; }\n #optimole-app .column.is-7-widescreen {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-widescreen {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-widescreen {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-widescreen {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-widescreen {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-widescreen {\n margin-left: 75%; }\n #optimole-app .column.is-10-widescreen {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-widescreen {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-widescreen {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-widescreen {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-widescreen {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-widescreen {\n margin-left: 100%; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .column.is-narrow-fullhd {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-fullhd {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-fullhd {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-fullhd {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-fullhd {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-fullhd {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-fullhd {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-fullhd {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-fullhd {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-fullhd {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-fullhd {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-fullhd {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-fullhd {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-fullhd {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-fullhd {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-fullhd {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-fullhd {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-fullhd {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-fullhd {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-fullhd {\n margin-left: 80%; }\n #optimole-app .column.is-1-fullhd {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-fullhd {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-fullhd {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-fullhd {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-fullhd {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-fullhd {\n margin-left: 25%; }\n #optimole-app .column.is-4-fullhd {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-fullhd {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-fullhd {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-fullhd {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-fullhd {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-fullhd {\n margin-left: 50%; }\n #optimole-app .column.is-7-fullhd {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-fullhd {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-fullhd {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-fullhd {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-fullhd {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-fullhd {\n margin-left: 75%; }\n #optimole-app .column.is-10-fullhd {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-fullhd {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-fullhd {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-fullhd {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-fullhd {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-fullhd {\n margin-left: 100%; } }\n #optimole-app .columns {\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n margin-top: -0.75rem; }\n #optimole-app .columns:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .columns:not(:last-child) {\n margin-bottom: calc(1.5rem - 0.75rem); }\n #optimole-app .columns.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .columns.is-gapless {\n margin-left: 0;\n margin-right: 0;\n margin-top: 0; }\n #optimole-app .columns.is-gapless > .column {\n margin: 0;\n padding: 0 !important; }\n #optimole-app .columns.is-gapless:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .columns.is-gapless:last-child {\n margin-bottom: 0; }\n #optimole-app .columns.is-mobile {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .columns.is-multiline {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .columns.is-vcentered {\n -ms-flex-align: center;\n align-items: center; }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns:not(.is-desktop) {\n display: -ms-flexbox;\n display: flex; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-desktop {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .columns.is-variable {\n --columnGap: 0.75rem;\n margin-left: calc(-1 * var(--columnGap));\n margin-right: calc(-1 * var(--columnGap)); }\n #optimole-app .columns.is-variable .column {\n padding-left: var(--columnGap);\n padding-right: var(--columnGap); }\n #optimole-app .columns.is-variable.is-0 {\n --columnGap: 0rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-0-mobile {\n --columnGap: 0rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-0-tablet {\n --columnGap: 0rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-0-tablet-only {\n --columnGap: 0rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-0-touch {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-0-desktop {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-0-desktop-only {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-0-widescreen {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-0-widescreen-only {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-0-fullhd {\n --columnGap: 0rem; } }\n #optimole-app .columns.is-variable.is-1 {\n --columnGap: 0.25rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-1-mobile {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-1-tablet {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-1-tablet-only {\n --columnGap: 0.25rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-1-touch {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-1-desktop {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-1-desktop-only {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-1-widescreen {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-1-widescreen-only {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-1-fullhd {\n --columnGap: 0.25rem; } }\n #optimole-app .columns.is-variable.is-2 {\n --columnGap: 0.5rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-2-mobile {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-2-tablet {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-2-tablet-only {\n --columnGap: 0.5rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-2-touch {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-2-desktop {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-2-desktop-only {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-2-widescreen {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-2-widescreen-only {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-2-fullhd {\n --columnGap: 0.5rem; } }\n #optimole-app .columns.is-variable.is-3 {\n --columnGap: 0.75rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-3-mobile {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-3-tablet {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-3-tablet-only {\n --columnGap: 0.75rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-3-touch {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-3-desktop {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-3-desktop-only {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-3-widescreen {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-3-widescreen-only {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-3-fullhd {\n --columnGap: 0.75rem; } }\n #optimole-app .columns.is-variable.is-4 {\n --columnGap: 1rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-4-mobile {\n --columnGap: 1rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-4-tablet {\n --columnGap: 1rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-4-tablet-only {\n --columnGap: 1rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-4-touch {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-4-desktop {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-4-desktop-only {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-4-widescreen {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-4-widescreen-only {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-4-fullhd {\n --columnGap: 1rem; } }\n #optimole-app .columns.is-variable.is-5 {\n --columnGap: 1.25rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-5-mobile {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-5-tablet {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-5-tablet-only {\n --columnGap: 1.25rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-5-touch {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-5-desktop {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-5-desktop-only {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-5-widescreen {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-5-widescreen-only {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-5-fullhd {\n --columnGap: 1.25rem; } }\n #optimole-app .columns.is-variable.is-6 {\n --columnGap: 1.5rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-6-mobile {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-6-tablet {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-6-tablet-only {\n --columnGap: 1.5rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-6-touch {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-6-desktop {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-6-desktop-only {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-6-widescreen {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-6-widescreen-only {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-6-fullhd {\n --columnGap: 1.5rem; } }\n #optimole-app .columns.is-variable.is-7 {\n --columnGap: 1.75rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-7-mobile {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-7-tablet {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-7-tablet-only {\n --columnGap: 1.75rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-7-touch {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-7-desktop {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-7-desktop-only {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-7-widescreen {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-7-widescreen-only {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-7-fullhd {\n --columnGap: 1.75rem; } }\n #optimole-app .columns.is-variable.is-8 {\n --columnGap: 2rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-8-mobile {\n --columnGap: 2rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-8-tablet {\n --columnGap: 2rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-8-tablet-only {\n --columnGap: 2rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-8-touch {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-8-desktop {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-8-desktop-only {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-8-widescreen {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-8-widescreen-only {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-8-fullhd {\n --columnGap: 2rem; } }\n #optimole-app .tile {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: block;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n min-height: -webkit-min-content;\n min-height: -moz-min-content;\n min-height: min-content; }\n #optimole-app .tile.is-ancestor {\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n margin-top: -0.75rem; }\n #optimole-app .tile.is-ancestor:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .tile.is-ancestor:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .tile.is-child {\n margin: 0 !important; }\n #optimole-app .tile.is-parent {\n padding: 0.75rem; }\n #optimole-app .tile.is-vertical {\n -ms-flex-direction: column;\n flex-direction: column; }\n #optimole-app .tile.is-vertical > .tile.is-child:not(:last-child) {\n margin-bottom: 1.5rem !important; }\n @media screen and (min-width: 769px), print {\n #optimole-app .tile:not(.is-child) {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .tile.is-1 {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .tile.is-2 {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .tile.is-3 {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .tile.is-4 {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .tile.is-5 {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .tile.is-6 {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .tile.is-7 {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .tile.is-8 {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .tile.is-9 {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .tile.is-10 {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .tile.is-11 {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .tile.is-12 {\n -ms-flex: none;\n flex: none;\n width: 100%; } }\n #optimole-app .hero {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .hero .navbar {\n background: none; }\n #optimole-app .hero .tabs ul {\n border-bottom: none; }\n #optimole-app .hero.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .hero.is-white a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-white strong {\n color: inherit; }\n #optimole-app .hero.is-white .title {\n color: #0a0a0a; }\n #optimole-app .hero.is-white .subtitle {\n color: rgba(10, 10, 10, 0.9); }\n #optimole-app .hero.is-white .subtitle a:not(.button),\n #optimole-app .hero.is-white .subtitle strong {\n color: #0a0a0a; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-white .navbar-menu {\n background-color: white; } }\n #optimole-app .hero.is-white .navbar-item,\n #optimole-app .hero.is-white .navbar-link {\n color: rgba(10, 10, 10, 0.7); }\n #optimole-app .hero.is-white a.navbar-item:hover, #optimole-app .hero.is-white a.navbar-item.is-active,\n #optimole-app .hero.is-white .navbar-link:hover,\n #optimole-app .hero.is-white .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .hero.is-white .tabs a {\n color: #0a0a0a;\n opacity: 0.9; }\n #optimole-app .hero.is-white .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-white .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-white .tabs.is-boxed a, #optimole-app .hero.is-white .tabs.is-toggle a {\n color: #0a0a0a; }\n #optimole-app .hero.is-white .tabs.is-boxed a:hover, #optimole-app .hero.is-white .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-white .tabs.is-boxed li.is-active a, #optimole-app .hero.is-white .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-white .tabs.is-toggle li.is-active a, #optimole-app .hero.is-white .tabs.is-toggle li.is-active a:hover {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .hero.is-white.is-bold {\n background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-white.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } }\n #optimole-app .hero.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .hero.is-black a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-black strong {\n color: inherit; }\n #optimole-app .hero.is-black .title {\n color: white; }\n #optimole-app .hero.is-black .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-black .subtitle a:not(.button),\n #optimole-app .hero.is-black .subtitle strong {\n color: white; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-black .navbar-menu {\n background-color: #0a0a0a; } }\n #optimole-app .hero.is-black .navbar-item,\n #optimole-app .hero.is-black .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-black a.navbar-item:hover, #optimole-app .hero.is-black a.navbar-item.is-active,\n #optimole-app .hero.is-black .navbar-link:hover,\n #optimole-app .hero.is-black .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .hero.is-black .tabs a {\n color: white;\n opacity: 0.9; }\n #optimole-app .hero.is-black .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-black .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-black .tabs.is-boxed a, #optimole-app .hero.is-black .tabs.is-toggle a {\n color: white; }\n #optimole-app .hero.is-black .tabs.is-boxed a:hover, #optimole-app .hero.is-black .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-black .tabs.is-boxed li.is-active a, #optimole-app .hero.is-black .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-black .tabs.is-toggle li.is-active a, #optimole-app .hero.is-black .tabs.is-toggle li.is-active a:hover {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .hero.is-black.is-bold {\n background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-black.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }\n #optimole-app .hero.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .hero.is-light a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-light strong {\n color: inherit; }\n #optimole-app .hero.is-light .title {\n color: #363636; }\n #optimole-app .hero.is-light .subtitle {\n color: rgba(54, 54, 54, 0.9); }\n #optimole-app .hero.is-light .subtitle a:not(.button),\n #optimole-app .hero.is-light .subtitle strong {\n color: #363636; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-light .navbar-menu {\n background-color: whitesmoke; } }\n #optimole-app .hero.is-light .navbar-item,\n #optimole-app .hero.is-light .navbar-link {\n color: rgba(54, 54, 54, 0.7); }\n #optimole-app .hero.is-light a.navbar-item:hover, #optimole-app .hero.is-light a.navbar-item.is-active,\n #optimole-app .hero.is-light .navbar-link:hover,\n #optimole-app .hero.is-light .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .hero.is-light .tabs a {\n color: #363636;\n opacity: 0.9; }\n #optimole-app .hero.is-light .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-light .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-light .tabs.is-boxed a, #optimole-app .hero.is-light .tabs.is-toggle a {\n color: #363636; }\n #optimole-app .hero.is-light .tabs.is-boxed a:hover, #optimole-app .hero.is-light .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-light .tabs.is-boxed li.is-active a, #optimole-app .hero.is-light .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-light .tabs.is-toggle li.is-active a, #optimole-app .hero.is-light .tabs.is-toggle li.is-active a:hover {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .hero.is-light.is-bold {\n background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-light.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } }\n #optimole-app .hero.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-dark strong {\n color: inherit; }\n #optimole-app .hero.is-dark .title {\n color: whitesmoke; }\n #optimole-app .hero.is-dark .subtitle {\n color: rgba(245, 245, 245, 0.9); }\n #optimole-app .hero.is-dark .subtitle a:not(.button),\n #optimole-app .hero.is-dark .subtitle strong {\n color: whitesmoke; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-dark .navbar-menu {\n background-color: #363636; } }\n #optimole-app .hero.is-dark .navbar-item,\n #optimole-app .hero.is-dark .navbar-link {\n color: rgba(245, 245, 245, 0.7); }\n #optimole-app .hero.is-dark a.navbar-item:hover, #optimole-app .hero.is-dark a.navbar-item.is-active,\n #optimole-app .hero.is-dark .navbar-link:hover,\n #optimole-app .hero.is-dark .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .hero.is-dark .tabs a {\n color: whitesmoke;\n opacity: 0.9; }\n #optimole-app .hero.is-dark .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-dark .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-dark .tabs.is-boxed a, #optimole-app .hero.is-dark .tabs.is-toggle a {\n color: whitesmoke; }\n #optimole-app .hero.is-dark .tabs.is-boxed a:hover, #optimole-app .hero.is-dark .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-dark .tabs.is-boxed li.is-active a, #optimole-app .hero.is-dark .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-dark .tabs.is-toggle li.is-active a, #optimole-app .hero.is-dark .tabs.is-toggle li.is-active a:hover {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .hero.is-dark.is-bold {\n background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-dark.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } }\n #optimole-app .hero.is-primary {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-primary strong {\n color: inherit; }\n #optimole-app .hero.is-primary .title {\n color: #fff; }\n #optimole-app .hero.is-primary .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-primary .subtitle a:not(.button),\n #optimole-app .hero.is-primary .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-primary .navbar-menu {\n background-color: #EF686B; } }\n #optimole-app .hero.is-primary .navbar-item,\n #optimole-app .hero.is-primary .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-primary a.navbar-item:hover, #optimole-app .hero.is-primary a.navbar-item.is-active,\n #optimole-app .hero.is-primary .navbar-link:hover,\n #optimole-app .hero.is-primary .navbar-link.is-active {\n background-color: #ed5154;\n color: #fff; }\n #optimole-app .hero.is-primary .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-primary .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-primary .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-primary .tabs.is-boxed a, #optimole-app .hero.is-primary .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-primary .tabs.is-boxed a:hover, #optimole-app .hero.is-primary .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-primary .tabs.is-boxed li.is-active a, #optimole-app .hero.is-primary .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-primary .tabs.is-toggle li.is-active a, #optimole-app .hero.is-primary .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #EF686B; }\n #optimole-app .hero.is-primary.is-bold {\n background-image: linear-gradient(141deg, #f52f54 0%, #EF686B 71%, #f58d7c 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-primary.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #f52f54 0%, #EF686B 71%, #f58d7c 100%); } }\n #optimole-app .hero.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .hero.is-link a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-link strong {\n color: inherit; }\n #optimole-app .hero.is-link .title {\n color: #fff; }\n #optimole-app .hero.is-link .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-link .subtitle a:not(.button),\n #optimole-app .hero.is-link .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-link .navbar-menu {\n background-color: #3273dc; } }\n #optimole-app .hero.is-link .navbar-item,\n #optimole-app .hero.is-link .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-link a.navbar-item:hover, #optimole-app .hero.is-link a.navbar-item.is-active,\n #optimole-app .hero.is-link .navbar-link:hover,\n #optimole-app .hero.is-link .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .hero.is-link .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-link .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-link .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-link .tabs.is-boxed a, #optimole-app .hero.is-link .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-link .tabs.is-boxed a:hover, #optimole-app .hero.is-link .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-link .tabs.is-boxed li.is-active a, #optimole-app .hero.is-link .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-link .tabs.is-toggle li.is-active a, #optimole-app .hero.is-link .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #3273dc; }\n #optimole-app .hero.is-link.is-bold {\n background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-link.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); } }\n #optimole-app .hero.is-info {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .hero.is-info a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-info strong {\n color: inherit; }\n #optimole-app .hero.is-info .title {\n color: #fff; }\n #optimole-app .hero.is-info .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-info .subtitle a:not(.button),\n #optimole-app .hero.is-info .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-info .navbar-menu {\n background-color: #5180C1; } }\n #optimole-app .hero.is-info .navbar-item,\n #optimole-app .hero.is-info .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-info a.navbar-item:hover, #optimole-app .hero.is-info a.navbar-item.is-active,\n #optimole-app .hero.is-info .navbar-link:hover,\n #optimole-app .hero.is-info .navbar-link.is-active {\n background-color: #4173b7;\n color: #fff; }\n #optimole-app .hero.is-info .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-info .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-info .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-info .tabs.is-boxed a, #optimole-app .hero.is-info .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-info .tabs.is-boxed a:hover, #optimole-app .hero.is-info .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-info .tabs.is-boxed li.is-active a, #optimole-app .hero.is-info .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-info .tabs.is-toggle li.is-active a, #optimole-app .hero.is-info .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #5180C1; }\n #optimole-app .hero.is-info.is-bold {\n background-image: linear-gradient(141deg, #2f7bb0 0%, #5180C1 71%, #5f7acd 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-info.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #2f7bb0 0%, #5180C1 71%, #5f7acd 100%); } }\n #optimole-app .hero.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .hero.is-success a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-success strong {\n color: inherit; }\n #optimole-app .hero.is-success .title {\n color: #fff; }\n #optimole-app .hero.is-success .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-success .subtitle a:not(.button),\n #optimole-app .hero.is-success .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-success .navbar-menu {\n background-color: #34a85e; } }\n #optimole-app .hero.is-success .navbar-item,\n #optimole-app .hero.is-success .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-success a.navbar-item:hover, #optimole-app .hero.is-success a.navbar-item.is-active,\n #optimole-app .hero.is-success .navbar-link:hover,\n #optimole-app .hero.is-success .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .hero.is-success .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-success .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-success .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-success .tabs.is-boxed a, #optimole-app .hero.is-success .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-success .tabs.is-boxed a:hover, #optimole-app .hero.is-success .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-success .tabs.is-boxed li.is-active a, #optimole-app .hero.is-success .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-success .tabs.is-toggle li.is-active a, #optimole-app .hero.is-success .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #34a85e; }\n #optimole-app .hero.is-success.is-bold {\n background-image: linear-gradient(141deg, #1f8a34 0%, #34a85e 71%, #34c27f 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-success.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #1f8a34 0%, #34a85e 71%, #34c27f 100%); } }\n #optimole-app .hero.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-warning strong {\n color: inherit; }\n #optimole-app .hero.is-warning .title {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning .subtitle {\n color: rgba(0, 0, 0, 0.9); }\n #optimole-app .hero.is-warning .subtitle a:not(.button),\n #optimole-app .hero.is-warning .subtitle strong {\n color: rgba(0, 0, 0, 0.7); }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-warning .navbar-menu {\n background-color: #ffdd57; } }\n #optimole-app .hero.is-warning .navbar-item,\n #optimole-app .hero.is-warning .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning a.navbar-item:hover, #optimole-app .hero.is-warning a.navbar-item.is-active,\n #optimole-app .hero.is-warning .navbar-link:hover,\n #optimole-app .hero.is-warning .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning .tabs a {\n color: rgba(0, 0, 0, 0.7);\n opacity: 0.9; }\n #optimole-app .hero.is-warning .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-warning .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-warning .tabs.is-boxed a, #optimole-app .hero.is-warning .tabs.is-toggle a {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning .tabs.is-boxed a:hover, #optimole-app .hero.is-warning .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-warning .tabs.is-boxed li.is-active a, #optimole-app .hero.is-warning .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-warning .tabs.is-toggle li.is-active a, #optimole-app .hero.is-warning .tabs.is-toggle li.is-active a:hover {\n background-color: rgba(0, 0, 0, 0.7);\n border-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .hero.is-warning.is-bold {\n background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-warning.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } }\n #optimole-app .hero.is-danger {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-danger strong {\n color: inherit; }\n #optimole-app .hero.is-danger .title {\n color: #fff; }\n #optimole-app .hero.is-danger .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-danger .subtitle a:not(.button),\n #optimole-app .hero.is-danger .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-danger .navbar-menu {\n background-color: #D54222; } }\n #optimole-app .hero.is-danger .navbar-item,\n #optimole-app .hero.is-danger .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-danger a.navbar-item:hover, #optimole-app .hero.is-danger a.navbar-item.is-active,\n #optimole-app .hero.is-danger .navbar-link:hover,\n #optimole-app .hero.is-danger .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .hero.is-danger .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-danger .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-danger .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-danger .tabs.is-boxed a, #optimole-app .hero.is-danger .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-danger .tabs.is-boxed a:hover, #optimole-app .hero.is-danger .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-danger .tabs.is-boxed li.is-active a, #optimole-app .hero.is-danger .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-danger .tabs.is-toggle li.is-active a, #optimole-app .hero.is-danger .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #D54222; }\n #optimole-app .hero.is-danger.is-bold {\n background-image: linear-gradient(141deg, #b31311 0%, #D54222 71%, #e46c2c 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-danger.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #b31311 0%, #D54222 71%, #e46c2c 100%); } }\n #optimole-app .hero.is-small .hero-body {\n padding-bottom: 1.5rem;\n padding-top: 1.5rem; }\n @media screen and (min-width: 769px), print {\n #optimole-app .hero.is-medium .hero-body {\n padding-bottom: 9rem;\n padding-top: 9rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .hero.is-large .hero-body {\n padding-bottom: 18rem;\n padding-top: 18rem; } }\n #optimole-app .hero.is-halfheight .hero-body, #optimole-app .hero.is-fullheight .hero-body, #optimole-app .hero.is-fullheight-with-navbar .hero-body {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .hero.is-halfheight .hero-body > .container, #optimole-app .hero.is-fullheight .hero-body > .container, #optimole-app .hero.is-fullheight-with-navbar .hero-body > .container {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .hero.is-halfheight {\n min-height: 50vh; }\n #optimole-app .hero.is-fullheight {\n min-height: 100vh; }\n #optimole-app .hero-video {\n overflow: hidden; }\n #optimole-app .hero-video video {\n left: 50%;\n min-height: 100%;\n min-width: 100%;\n position: absolute;\n top: 50%;\n transform: translate3d(-50%, -50%, 0); }\n #optimole-app .hero-video.is-transparent {\n opacity: 0.3; }\n @media screen and (max-width: 768px) {\n #optimole-app .hero-video {\n display: none; } }\n #optimole-app .hero-buttons {\n margin-top: 1.5rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .hero-buttons .button {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .hero-buttons .button:not(:last-child) {\n margin-bottom: 0.75rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .hero-buttons {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .hero-buttons .button:not(:last-child) {\n margin-right: 1.5rem; } }\n #optimole-app .hero-head,\n #optimole-app .hero-foot {\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .hero-body {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n padding: 3rem 1.5rem; }\n #optimole-app .section {\n padding: 3rem 1.5rem; }\n @media screen and (min-width: 1088px) {\n #optimole-app .section.is-medium {\n padding: 9rem 1.5rem; }\n #optimole-app .section.is-large {\n padding: 18rem 1.5rem; } }\n #optimole-app .footer {\n background-color: #fafafa;\n padding: 3rem 1.5rem 6rem; }\n #optimole-app .card {\n transition: all 750ms ease-in-out;\n border: 0;\n border-radius: .1875rem;\n box-shadow: 0 1px 15px 1px rgba(39, 39, 39, 0.1); }\n #optimole-app .logo {\n margin-bottom: 10px; }\n #optimole-app .logo img {\n max-width: 180px;\n margin: 0 auto; }\n #optimole-app .vue-js-switch {\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center; }\n #optimole-app .api-key-control {\n padding: 0; }\n #optimole-app .is-vertical-center {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center; }\n #optimole-app .api-key-field .button.is-danger {\n padding-left: 20px;\n padding-right: 20px; }\n #optimole-app .api-key-label {\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n margin: 0.5em 10px 0.5em 0;\n font-size: 1em; }\n #optimole-app .header {\n padding: 0 1.5rem 0; }\n #optimole-app .header.level {\n margin-bottom: 0; }\n #optimole-app .account img {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px; }\n #optimole-app .account .label {\n margin-bottom: 0; }\n #optimole-app .optimized-images table td, #optimole-app .optimized-images table th {\n vertical-align: middle; }\n #optimole-app .media-diff {\n position: relative;\n margin: 0 auto; }\n #optimole-app .media-diff video, #optimole-app .media-diff img {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%; }\n #optimole-app .origin-wrapper {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n z-index: 1;\n transform: translateZ(0);\n will-change: width; }\n #optimole-app .handle {\n position: absolute;\n top: 0;\n bottom: 0;\n color: rgba(255, 255, 255, 0.8);\n background-color: rgba(255, 255, 255, 0.8);\n width: 2px;\n cursor: ew-resize;\n transform: translateX(-50%) translateZ(0);\n z-index: 2;\n will-change: left;\n left: 200px; }\n #optimole-app .cursor {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateZ(0); }\n #optimole-app .cursor .circle {\n background-color: rgba(255, 255, 255, 0.8);\n width: 24px;\n height: 24px;\n border-radius: 50%; }\n #optimole-app .no-padding-right {\n padding-right: 0px !important; }\n #optimole-app #filters-list .list {\n border: none;\n background: none;\n box-shadow: none; }\n #optimole-app #filters-list .list-item {\n border: none; }\n #optimole-app #filters-list .exclusion-filter .tag.is-link strong {\n white-space: initial; }\n #optimole-app #filters-list .exclusion-filter .tag.is-link i {\n margin-right: 5px; }\n #optimole-app #filters-list .exclusion-filter .tag.is-link {\n text-decoration: none;\n width: 80%;\n height: auto;\n min-height: 2em;\n -ms-flex-pack: left;\n justify-content: left; }\n\n.fade-enter-active, .fade-leave-active {\n transition: opacity .5s; }\n\n.fade-enter, .fade-leave-to {\n opacity: 0; }\n\n.media_page_optimole #wpbody-content > * {\n display: none !important; }\n\n.media_page_optimole #wpbody-content > #optimole-app {\n display: block !important; }\n\n#optimole-app img.optml-image {\n float: left;\n max-width: 100px;\n width: auto;\n margin: auto; }\n\n#optimole-app img.optml-image-watermark {\n width: 50px; }\n\n.optml-ratio-feedback .emoji {\n font-size: 1.5em; }\n\n.optml-ratio-feedback {\n float: right;\n padding-right: 20px; }\n\n.optml-image-heading {\n text-align: left; }\n\nth.optml-image-ratio-heading {\n text-align: right !important;\n font-size: 150%; }\n\n@media screen and (max-width: 768px) {\n li:not(.is-active) > a > span:not(.icon) {\n visibility: hidden;\n position: absolute; }\n nav.tabs li:not(.is-active) {\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n .tabs .icon {\n margin-left: 0.5em; } }\n\n.tabs li {\n transition: flex-grow 1s ease;\n transition: flex-grow 1s ease, -ms-flex-positive 1s ease; }\n\n#optimole-app .tabs a {\n margin-bottom: -4px; }\n\n#optimole-app .optml-upgrade {\n min-width: 200px; }\n\n#optimole-app .is-tab.no-images {\n min-height: 400px; }\n\n#optimole-app .is-tab {\n min-height: 700px; }\n\n.optml-tabs {\n position: relative; }\n\n.optml-tabs .optml-conflicts-tabs {\n position: absolute;\n right: 0;\n top: 0; }\n\n#optml-loader {\n min-height: 400px;\n margin-top: 150px; }\n\n.slide-fade-enter-active {\n transition: all .3s ease; }\n\n.slide-fade-leave-active {\n transition: all 0.8s cubic-bezier(1, 0.5, 0.8, 1); }\n\n.slide-fade-enter, .slide-fade-leave-to {\n transform: translateX(10px);\n opacity: 0; }\n\n#optml-progress-bar.progress.optml-progres-0:indeterminate {\n background-image: linear-gradient(to right, #5180C1 5%, #dbdbdb 5%); }\n\n#optml-progress-bar.progress.optml-progres-1:indeterminate {\n background-image: linear-gradient(to right, #5180C1 10%, #dbdbdb 10%); }\n\n#optml-progress-bar.progress.optml-progres-2:indeterminate {\n background-image: linear-gradient(to right, #5180C1 20%, #dbdbdb 20%); }\n\n#optml-progress-bar.progress.optml-progres-3:indeterminate {\n background-image: linear-gradient(to right, #5180C1 30%, #dbdbdb 30%); }\n\n#optml-progress-bar.progress.optml-progres-4:indeterminate {\n background-image: linear-gradient(to right, #5180C1 40%, #dbdbdb 40%); }\n\n#optml-progress-bar.progress.optml-progres-5:indeterminate {\n background-image: linear-gradient(to right, #5180C1 50%, #dbdbdb 50%); }\n\n#optml-progress-bar.progress.optml-progres-6:indeterminate {\n background-image: linear-gradient(to right, #5180C1 60%, #dbdbdb 60%); }\n\n#optml-progress-bar.progress.optml-progres-7:indeterminate {\n background-image: linear-gradient(to right, #5180C1 70%, #dbdbdb 70%); }\n\n#optml-progress-bar.progress.optml-progres-8:indeterminate {\n background-image: linear-gradient(to right, #5180C1 80%, #dbdbdb 80%); }\n\n#optml-progress-bar.progress.optml-progres-9:indeterminate {\n background-image: linear-gradient(to right, #5180C1 90%, #dbdbdb 90%); }\n\n.notification .dashicons-external {\n text-decoration: none;\n font-size: 18px; }\n',""])},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}var i=n(15),a=o(i),r=n(20),s=o(r),l=n(25),p=o(l),c=n(32),d=o(c),m=n(37),u=o(m),f=n(4),h=o(f),b=n(45),v=o(b),g=n(5),x=o(g);t.exports={name:"app",data:function(){return{strings:optimoleDashboardApp.strings,home:optimoleDashboardApp.home_url,remove_images:"yes"===optimoleDashboardApp.remove_latest_images,fetchStatus:!1,step_no:0,timer:0,max_time:25,loading_percent:0,tab:"dashboard"}},computed:{conflictCount:function(){return this.$store.state.conflicts.count||0},is_connected:function(){return this.$store.state.connected},is_loaded:function(){return this.$store.state.is_loaded}},components:{AppHeader:a.default,Options:v.default,Watermarks:x.default,ConnectLayout:p.default,ApiKeyForm:h.default,CdnDetails:s.default,Conflicts:u.default,LastImages:d.default},watch:{is_connected:function(t){console.log(t),t&&!this.is_loaded&&this.triggerLoading()}},mounted:function(){var t=this;this.$store.state.connected&&(this.$store.dispatch("retrieveOptimizedImages",{waitTime:0,component:null}),this.$store.dispatch("retrieveConflicts",{waitTime:0,component:null}),t.fetchStatus=!0)},methods:{changeTab:function(t){this.tab=t},getProgressMessage:function(){var t="";return 0===this.step_no&&(t=this.strings.options_strings.connect_step_0),1===this.step_no&&(t=this.strings.options_strings.connect_step_1),2===this.step_no&&(t=this.strings.options_strings.connect_step_2),3===this.step_no&&(t=this.strings.options_strings.connect_step_3),t+" ("+this.loading_percent+"%)"},doLoading:function(){if(++this.timer>=this.max_time)return this.$store.commit("toggleIsServiceLoaded",!0),this.timer=0,this.step_no=0,void(this.loading_percent=0);this.loading_percent=Math.floor(this.timer/this.max_time*100),this.loading_percent>30*(this.step_no+1)&&this.step_no++,this.timer<this.max_time&&this.triggerLoading()},triggerLoading:function(){var t=this;setTimeout(function(){t.doLoading()},1e3)}}}},function(t,e,n){var o,i;n(16),o=n(18),i=n(19),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(17);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\t@media ( min-width: 769px ) {\n\t\t#optimole-app hr[_v-316d7377] {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"app-header",data:function(){return{logo:optimoleDashboardApp.assets_url+"img/logo.png",strings:optimoleDashboardApp.strings}},computed:{connected:function(){return this.$store.state.connected}}}},function(t,e){t.exports='\n\t<div _v-316d7377="">\n\t\t<div class="header has-text-centered level" _v-316d7377="">\n\t\t\t\n\t\t\t<div class="level-left" _v-316d7377="">\n\t\t\t\t<a class="logo level-item" href="https://optimole.com" target="_blank" _v-316d7377="">\n\t\t\t\t\t<figure class="image is-96x96 is-hidden-touch" _v-316d7377="">\n\t\t\t\t\t\t<img :src="logo" :alt="strings.optimole + \' \' + strings.service_details" _v-316d7377="">\n\t\t\t\t\t</figure>\n\t\t\t\t\t<figure class="image is-48x48 is-hidden-desktop" _v-316d7377="">\n\t\t\t\t\t\t<img :src="logo" :alt="strings.optimole + \' \' + strings.service_details" _v-316d7377="">\n\t\t\t\t\t</figure>\n\t\t\t\t</a>\n\t\t\t\t<h3 class="has-text-centered has-text-grey-dark is-size-5 is-size-4-widescreen is-size-6-touch level-item" _v-316d7377="">\n\t\t\t\t\t<span class="has-text-weight-semibold" _v-316d7377="">\n\t\t\t\t\tOptiMole - {{strings.service_details}}\n\t\t\t\t\t</span>\n\t\t\t\t</h3>\n\t\t\t</div>\n\t\t\t<div class="level-right" _v-316d7377="">\n\t\t\t\t<div class="tags has-addons level-item" _v-316d7377="">\n\t\t\t\t\t<span class="tag is-dark" _v-316d7377="">{{strings.status}}</span>\n\t\t\t\t\t<span v-if="connected" class="tag is-success" _v-316d7377="">{{strings.connected}}</span>\n\t\t\t\t\t<span v-else="" class="tag is-danger" _v-316d7377="">{{strings.not_connected}}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t</div>\n\t\t<hr _v-316d7377="">\n\t</div>\n'},function(t,e,n){var o,i;n(21),o=n(23),i=n(24),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(22);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\t#optimole-app .label[_v-7f71b554] {\n\t\tmargin-top: 0;\n\t}\n\t.optml-refresh-wrapper i.dashicons[_v-7f71b554]{\n\t\twidth:auto;\n\t\theight:auto;\n\t}\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"cdn-details",data:function(){return{strings:optimoleDashboardApp.strings}},computed:{userData:function(){return this.$store.state.userData}},methods:{computedPercentage:function(){return(this.userData.usage/this.userData.quota*100).toFixed(2)},requestUpdate:function(){this.$store.dispatch("requestStatsUpdate",{waitTime:0,component:null})}}}},function(t,e){t.exports='\n\t<div class="cdn-details" _v-7f71b554="">\n\t\t<hr _v-7f71b554="">\n\t\t<div class="account level has-text-centered" _v-7f71b554="">\n\t\t\t<div class="level-left" _v-7f71b554="">\n\t\t\t\t<span class="label level-item" _v-7f71b554="">{{strings.logged_in_as}}:</span>\n\t\t\t\t<p class="details level-item tags has-addons" _v-7f71b554="">\n\t\t\t\t\t<span class="tag is-light" _v-7f71b554="">{{userData.display_name}}</span>\n\t\t\t\t\t<span class="tag is-paddingless" _v-7f71b554=""><img :src="userData.picture" class="image is-24x24 is-rounded" :alt="userData.display_name" _v-7f71b554=""></span>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t\t<div class="level-right" _v-7f71b554="">\n\t\t\t\t<span class="label level-item" _v-7f71b554="">{{strings.private_cdn_url}}:</span>\n\t\t\t\t<p class="details level-item tag is-light" _v-7f71b554="">{{userData.cdn_key}}.i.optimole.com</p>\n\t\t\t</div>\n\t\t</div>\n\t\t<hr _v-7f71b554="">\n\t\t<div class="level stats" _v-7f71b554="">\n\t\t\t<div class="level-left" _v-7f71b554="">\n\t\t\t\t<div class="level-item" _v-7f71b554="">\n\t\t\t\t\t<div class="tags has-addons" _v-7f71b554="">\n\t\t\t\t\t\t<span class="tag is-info" _v-7f71b554="">{{strings.usage}}:</span>\n\t\t\t\t\t\t<span class="tag" _v-7f71b554="">{{this.userData.usage_pretty}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<h4 class="level-item is-size-5 is-marginless has-text-grey" _v-7f71b554="">\n\t\t\t\t{{computedPercentage()}}%\n\t\t\t</h4>\n\t\t\t<div class="level-right" _v-7f71b554="">\n\t\t\t\t<div class="level-item" _v-7f71b554="">\n\t\t\t\t\t<div class="tags has-addons" _v-7f71b554="">\n\t\t\t\t\t\t<span class="tag is-info" _v-7f71b554="">{{strings.quota}}:</span>\n\t\t\t\t\t\t<span class="tag" _v-7f71b554="">{{this.userData.quota_pretty}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t\n\t\t<div class="level-right" _v-7f71b554="">\n\t\t\t\n\t\t\t<div class="level-item optml-refresh-wrapper" _v-7f71b554="">\n\t\t\t<a class="button is-small is-warning" v-if="this.$store.state.loading" _v-7f71b554=""><span class="icon" _v-7f71b554=""><i class="dashicons dashicons-backup is-size-6" _v-7f71b554=""></i></span> <span _v-7f71b554="">{{strings.updating_stats_cta}}</span>\n\t\t\t</a>\n\t\t\t<a class="button is-small is-info" v-else="" v-on:click="requestUpdate" _v-7f71b554=""><span class="icon" _v-7f71b554=""><i class="dashicons dashicons-image-rotate is-size-6" _v-7f71b554=""></i></span> <span _v-7f71b554="">{{strings.refresh_stats_cta}}</span>\n\t\t\t</a>\n\t\t\t</div>\n\t\t</div>\n\t\t<hr _v-7f71b554="">\n\t\t<progress class="progress is-success" :value="this.userData.usage" :max="this.userData.quota" _v-7f71b554="">60%</progress>\n\t\n\t</div>\n'},function(t,e,n){var o,i;n(26),o=n(28),i=n(31),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(27);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\tinput[_v-398fcc2b], .notification .delete[_v-398fcc2b], button[_v-398fcc2b] {\n\t\tbox-sizing: border-box !important;\n\t}\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),i=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:"connect-layout",components:{ApiKeyForm:i.default},data:function(){return{email:optimoleDashboardApp.current_user.email,strings:optimoleDashboardApp.strings,showApiKey:!1,error:!1,showRegisterField:!1,from_register:!1}},computed:{isLoading:function(){return this.$store.state.loading},isRestApiWorking:function(){return this.$store.state.apiError}},methods:{toggleApiForm:function(){this.error=!1,this.from_register=!1,this.showApiKey=!this.showApiKey},registerAccount:function(){var t=this;if(!this.showRegisterField)return void(this.showRegisterField=!0);this.error=!1,this.$store.dispatch("registerOptimole",{email:this.email}).then(function(e){"success"===e.code?(t.showApiKey=!0,t.from_register=!0):t.error=!0})}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"api-key-form",data:function(){return{apiKey:this.$store.state.apiKey?this.$store.state.apiKey:"",connected:this.$store.state.connected,strings:optimoleDashboardApp.strings,isLoading:!1}},mounted:function(){},computed:{validKey:function(){return this.$store.state.apiKeyValidity},connectionError:function(){return this.$store.state.connectError},isConnected:function(){return this.$store.state.connected}},methods:{connect:function(){this.$store.dispatch("connectOptimole",{apiKey:this.apiKey})},disconnect:function(){this.apiKey="",this.$store.dispatch("disconnectOptimole",{})}}}},function(t,e){t.exports='\n\t<div>\n\t\t<div class="field has-addons api-key-field">\n\t\t\t<label v-if="isConnected"\n\t\t\t\t\tclass="label api-key-label has-text-grey-dark">{{strings.api_key_placeholder}}:</label>\n\t\t\t<div class="control is-expanded api-key-control">\n\t\t\t\t<input :type="isConnected ? \'password\' : \'text\'" :disabled="isConnected" name="api_key" class="input "\n\t\t\t\t\t\t:class="validKey ? \'\' : \'is-danger\'" :placeholder="strings.api_key_placeholder"\n\t\t\t\t\t\tv-model="apiKey">\n\t\t\t</div>\n\t\t\t<div class="control">\n\t\t\t\t<button v-if="! isConnected" class="button button is-success "\n\t\t\t\t\t\t@click="connect" :class="{ \'is-loading\' : this.$store.state.isConnecting }">\n\t\t\t\t\t<span class="icon"><i class="dashicons dashicons-admin-plugins"></i></span>\n\t\t\t\t\t<span>{{strings.connect_btn}}</span>\n\t\t\t\t</button>\n\t\t\t\t<button v-else class="button is-danger " @click="disconnect"\n\t\t\t\t\t\t:class="{ \'is-loading\' : this.$store.state.isConnecting }">\n\t\t\t\t\t<span class="icon"><i class="dashicons dashicons-dismiss"></i></span>\n\t\t\t\t\t<span>{{strings.disconnect_btn}}</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t\t<p v-if="! validKey" class="help is-danger">\n\t\t\t{{connectionError}}\n\t\t</p>\n\t</div>\n'},function(t,e){t.exports='\n\t<section class="is-clearfix" _v-398fcc2b="">\n\t\t<nav class="breadcrumb" aria-label="breadcrumbs" v-if="showApiKey" _v-398fcc2b="">\n\t\t\t<ul _v-398fcc2b="">\n\t\t\t\t<li _v-398fcc2b=""><a @click="toggleApiForm" href="#" _v-398fcc2b="">{{strings.back_to_register}}</a></li>\n\t\t\t\t<li class="is-active is-marginless" v-if="showApiKey" _v-398fcc2b=""><a href="#" aria-current="page" _v-398fcc2b="">{{strings.back_to_connect}}</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t\t<div class="notification is-danger" v-if="isRestApiWorking" v-html="strings.notice_api_not_working" _v-398fcc2b=""></div>\n\t\t<div class="section" v-if="showApiKey" _v-398fcc2b="">\n\t\t\t<div class="notification is-success" v-if="from_register" _v-398fcc2b="">\n\t\t\t\t{{strings.notification_message_register}}\n\t\t\t</div>\n\t\t\t<api-key-form _v-398fcc2b=""></api-key-form>\n\t\t\t<hr _v-398fcc2b="">\n\t\t\t<div class="columns" _v-398fcc2b="">\n\t\t\t\t\n\t\t\t\t<div class="column columns is-marginless is-vcentered " _v-398fcc2b="">\n\t\t\t\t\t\n\t\t\t\t\t<span class="dashicons dashicons-share column is-2 is-size-3 is-paddingless" _v-398fcc2b=""></span>\n\t\t\t\t\t<div class="is-pulled-left column is-10 is-paddingless" _v-398fcc2b="">\n\t\t\t\t\t\t<p class="title is-size-5 " _v-398fcc2b="">1. {{strings.step_one_api_title}}</p>\n\t\t\t\t\t\t<p class="subtitle is-size-6" v-html="strings.step_one_api_desc" _v-398fcc2b=""></p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="column is columns is-vcentered is-marginless" _v-398fcc2b="">\n\t\t\t\t\t\n\t\t\t\t\t<span class="dashicons dashicons-admin-plugins column is-2 is-size-3 is-paddingless" _v-398fcc2b=""></span>\n\t\t\t\t\t<div class="is-pulled-left column is-10 is-paddingless" _v-398fcc2b="">\n\t\t\t\t\t\t<p class="title is-size-5" _v-398fcc2b="">2. {{strings.step_two_api_title}}</p>\n\t\t\t\t\t\t<p class="subtitle is-size-6" _v-398fcc2b="">{{strings.step_two_api_desc}}</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\n\t\t</div>\n\t\t<div class="columns is-vcentered is-desktop " v-else="" _v-398fcc2b="">\n\t\t\t<div class="column has-text-left is-fluid is-hidden-touch" _v-398fcc2b="">\n\t\t\t\t<div class="hero" _v-398fcc2b="">\n\t\t\t\t\t<div class="hero-body content" _v-398fcc2b="">\n\t\t\t\t\t\t<p class="title" _v-398fcc2b="">{{strings.account_needed_heading}}</p>\n\t\t\t\t\t\t<p class="subtitle " v-html="strings.account_needed_title" _v-398fcc2b=""></p>\n\t\t\t\t\t\t<div class=" is-hidden-touch" _v-398fcc2b="">\n\t\t\t\t\t\t\t<div class="columns is-vcentered " _v-398fcc2b="">\n\t\t\t\t\t\t\t\t<div class=" is-narrow is-hidden-touch column" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t\t<span class="dashicons icon dashicons-format-image is-size-4 " _v-398fcc2b=""></span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="column" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t\t<p class="subtitle column is-size-6 is-vcentered has-text-left" v-html="strings.account_needed_subtitle_1" _v-398fcc2b=""></p>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="columns is-vcentered" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t<div class=" is-narrow is-hidden-touch column" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t\t<span class="dashicons icon dashicons-plus is-size-4 " _v-398fcc2b=""></span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="column" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t\t<p class="subtitle column is-size-6 is-vcentered has-text-left" v-html="strings.account_needed_subtitle_2" _v-398fcc2b=""></p>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="column is-4-desktop is-full-touch " _v-398fcc2b="">\n\t\t\t\t<p v-html="strings.account_needed_title" class="is-size-6 has-text-centered is-hidden-desktop" _v-398fcc2b=""></p>\n\t\t\t\t<div class="field " v-show="showRegisterField" _v-398fcc2b="">\n\t\t\t\t\t<label for="optml-email" class="label title is-size-5 is-12" _v-398fcc2b="">{{strings.email_address_label}}\n\t\t\t\t\t\t:</label>\n\t\t\t\t\t<div class="control is-12 is-small has-icons-left " _v-398fcc2b="">\n\t\t\t\t\t\t<input name="optml-email" id="optml-email" class="input is-medium is-fullwidth is-danger" type="email" v-model="email" _v-398fcc2b="">\n\t\t\t\t\t\t<span class="icon is-small is-left dashicons dashicons-email" _v-398fcc2b=""></span>\n\t\t\t\t\t\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<p class="help is-danger" v-if="error" v-html="strings.error_register" _v-398fcc2b=""></p>\n\t\t\t\t</div>\n\t\t\t\t<div class="field " _v-398fcc2b="">\n\t\t\t\t\t<div class="control " _v-398fcc2b="">\n\t\t\t\t\t\t<div class=" has-text-centered-mobile" _v-398fcc2b="">\n\t\t\t\t\t\t\t<button @click="registerAccount" class="button is-fullwidth is-medium is-primary " :class="isLoading ? \'is-loading\' :\'\' " _v-398fcc2b="">\n\t\t\t\t\t\t\t\t<span class="icon dashicons dashicons-admin-users" _v-398fcc2b=""></span>\n\t\t\t\t\t\t\t\t<span _v-398fcc2b="">{{strings.register_btn}}</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<hr _v-398fcc2b="">\n\t\t\t\t\t\t<div class=" is-right has-text-centered-mobile has-text-right" _v-398fcc2b="">\n\t\t\t\t\t\t\t<button @click="toggleApiForm" class="button is-fullwidth is-medium is-outlined is-info" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t<span class="icon dashicons dashicons-admin-network is-small" _v-398fcc2b=""></span>\n\t\t\t\t\t\t\t\t<span _v-398fcc2b="">{{strings.api_exists}}</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</section>\n'},function(t,e,n){var o,i;n(33),o=n(35),i=n(36),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(34);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\t.loader[_v-1dc903c1] {\n\t\tmargin: 0 auto;\n\t\tfont-size: 10em;\n\t\tborder-left: 2px solid #888 !important;\n\t\tborder-bottom: 2px solid #888 !important;\n\t\tmargin-top: 0.2em;\n\t}\n\t\n\t.progress[_v-1dc903c1]::-webkit-progress-value {\n\t\ttransition: width 0.5s ease;\n\t}\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"last-images",data:function(){return{loading:!0,startTime:0,maxTime:20,noImages:!1,home_url:optimoleDashboardApp.home_url,strings:optimoleDashboardApp.strings.latest_images}},props:{status:status},mounted:function(){if(this.$store.state.optimizedImages.length>0)return void(this.loading=!1);this.doProgressBar(),this.$store.dispatch("retrieveOptimizedImages",{waitTime:1e3*this.maxTime,component:this})},watch:{imageData:function(){var t=this;this.imageData.length>0&&(this.startTime=this.maxTime,setTimeout(function(){t.loading=!1},1e3))}},computed:{imageData:function(){return null!==this.$store.state.optimizedImages?this.$store.state.optimizedImages:[]}},methods:{doProgressBar:function(){this.startTime!==this.maxTime&&(this.startTime++,setTimeout(this.doProgressBar,1e3))},compressionRate:function(t,e){var n=(parseFloat(t/e*100)-100).toFixed(1);return n<1?this.strings.same_size:n>1&&n<25?this.strings.small_optimization.replace("{ratio}",n.toString()+"%"):n>25&&n<100?this.strings.medium_optimization.replace("{ratio}",n.toString()+"%"):n>100?this.strings.big_optimization.replace("{ratio}",(Math.floor(n/10+10)/10).toFixed(1).toString()+"x"):void 0}}}},function(t,e){t.exports='\n\t<div _v-1dc903c1="">\n\t\t<div class="optimized-images" v-if="! loading " _v-1dc903c1="">\n\t\t\t<div v-if="!noImages" _v-1dc903c1="">\n\t\t\t\t<h3 class="has-text-centered" _v-1dc903c1="">{{strings.last}} {{strings.optimized_images}}</h3>\n\t\t\t\t<table class="table is-striped is-hoverable is-fullwidth" _v-1dc903c1="">\n\t\t\t\t\t<thead _v-1dc903c1="">\n\t\t\t\t\t<tr _v-1dc903c1="">\n\t\t\t\t\t\t<th class="optml-image-heading" _v-1dc903c1="">{{strings.image}}</th>\n\t\t\t\t\t\t<th class="optml-image-ratio-heading" _v-1dc903c1="">{{strings.compression}}</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody _v-1dc903c1="">\n\t\t\t\t\t<tr v-for="(item, index) in imageData" _v-1dc903c1="">\n\t\t\t\t\t\t<td _v-1dc903c1=""><a :href="item.url" target="_blank" _v-1dc903c1=""><img :src="item.url" class="optml-image" _v-1dc903c1=""></a></td>\n\t\t\t\t\t\t<td _v-1dc903c1=""><p class="optml-ratio-feedback" v-html="compressionRate(item.ex_size_raw, item.new_size_raw)" _v-1dc903c1=""></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-else="" _v-1dc903c1="">\n\t\t\t<iframe width="1" height="1" :src="home_url" style="visibility: hidden" _v-1dc903c1=""></iframe>\n\t\t\t<h6 class="has-text-centered" _v-1dc903c1="">{{strings.loading_latest_images}}</h6>\n\t\t\t<progress class="progress is-large" :value="startTime" :max="maxTime" _v-1dc903c1=""></progress>\n\t\t</div>\n\t\t<table class="table is-striped is-hoverable is-fullwidth" v-if="noImages" _v-1dc903c1="">\n\t\t\t<thead _v-1dc903c1="">\n\t\t\t<tr _v-1dc903c1="">\n\t\t\t\t<th class="optml-image-heading has-text-centered" v-html="strings.no_images_found" _v-1dc903c1=""></th>\n\t\t\t</tr>\n\t\t\t</thead>\n\t\t</table>\n\t</div>\n'},function(t,e,n){var o,i;o=n(38),i=n(44),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(39),i=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:"conflicts",components:{ConflictItem:i.default},data:function(){return{home_url:optimoleDashboardApp.home_url,strings:optimoleDashboardApp.strings.conflicts}},computed:{noConflicts:function(){return 0===this.$store.state.conflicts.count},conflictData:function(){return null!==this.$store.state.conflicts.conflicts?this.$store.state.conflicts.conflicts:[]}}}},function(t,e,n){var o,i;n(40),o=n(42),i=n(43),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(41);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\t#optimole-app .optml-conflict-done.button.is-link.is-outlined.is-loading[_v-5dd24740]::after {\n\t\tborder-color: transparent transparent #fff #fff !important;\n\t}\n\n\t.optml-conflict-done[_v-5dd24740]:hover {\n\t\tbackground-color: transparent !important;\n\t\tcolor: #fff !important;\n\t\tborder-color: transparent !important;\n\t}\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"conflict-item",props:{item:{type:Object},is_loading:{type:Boolean,default:!1}},data:function(){return{home_url:optimoleDashboardApp.home_url,strings:optimoleDashboardApp.strings.conflicts}},methods:{conflictClass:function(t){return"high"===t?"is-danger":"medium"===t?"is-info":"is-primary"},dismissConflict:function(t){this.is_loading=!0,this.$store.dispatch("dismissConflict",{conflictID:t,component:this})}}}},function(t,e){t.exports='\n\t<div class="notification" :class="conflictClass( item.severity )" _v-5dd24740="">\n\t\t<div v-html="item.message" _v-5dd24740=""></div>\n\n\t\t<a :class="is_loading ? \'is-loading\' : \'\' " class="is-pulled-right button optml-conflict-done is-small is-link is-inverted is-outlined" v-on:click="dismissConflict( item.id )" _v-5dd24740=""><span v-if="!is_loading" class="dashicons dashicons-yes" _v-5dd24740=""></span>{{strings.conflict_close}}</a>\n\t\t<div class=" is-clearfix" _v-5dd24740=""></div>\n\t</div>\n'},function(t,e){t.exports='\n\t<div>\n\t\t<div class="conflicts-table">\n\t\t\t<h6 v-if="!noConflicts" class="has-text-centered">{{strings.title}}</h6>\n\t\t\t<div v-if="!noConflicts">\n\n\t\t\t\t<div class="row" v-for="(item, index) in conflictData">\n\t\t\t\t\t<div class="column">\n\t\t\t\t\t\t<conflict-item v-bind:item=item v-bind:is_loading="false"></conflict-item>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if="noConflicts">\n\t\t\t\t<table class="table is-striped is-hoverable is-fullwidth">\n\t\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th class="optml-image-heading has-text-centered" v-html="strings.no_conflicts_found"></th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n'},function(t,e,n){var o,i;n(46),o=n(48),i=n(94),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(47);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n #optml-settings-menu > ul.menu-list.optml-settings-submenu[_v-5187a250] {\n list-style: none;\n }\n\n #optml-settings-menu li a span.tag.optml-beta[_v-5187a250] {\n border-radius: 2px;\n font-family: Verdana;\n font-size: .5rem;\n height: 2.25em;\n margin-left: .5em;\n vertical-align: text-bottom;\n }\n\n #optml-settings-menu > ul.menu-list > li > ul[_v-5187a250] {\n margin-top: 10px;\n padding-top: 10px;\n border: none;\n font-size: 0.8rem;\n list-style: none;\n }\n\n .subtab-content[_v-5187a250] {\n\n padding: 0.5em 0.75em;\n }\n\n #optml-settings-menu[_v-5187a250] {\n padding-top: 23px;\n }\n\n .subtab-content[_v-5187a250] {\n padding-top: 10px;\n }\n\n .advanced-link[_v-5187a250] {\n font-size: 100%;\n line-height: 20px;\n }\n\n #optimole-app .is-menu-disabled > ul > li > a[_v-5187a250] {\n cursor: not-allowed;\n }\n\n .is-tab-disabled[_v-5187a250]:not(.is-tab-general),\n .is-menu-disabled[_v-5187a250] {\n opacity: 0.4;\n cursor: not-allowed;\n }\n",""])},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(49),a=o(i),r=n(54),s=o(r),l=n(5),p=o(l),c=n(74),d=o(c),m=n(79),u=o(m),f=n(89),h=o(f);e.default={name:"options",components:{Lazyload:h.default,Exclusions:u.default,Resize:d.default,Watermarks:p.default,Compression:s.default,General:a.default},data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showNotification:!1,tab:"general",isDisabled:!1,advancedOpen:!1}},mounted:function(){},methods:{ToggleAdvanced:function(){this.advancedOpen=!this.advancedOpen,this.advancedOpen||(this.tab="general"),this.advancedOpen&&(this.tab="compression")},changeTab:function(t){this.tab=t},updateGlobalState:function(t){this.isDisabled=!t}},computed:{}}},function(t,e,n){var o,i;n(50),o=n(52),i=n(53),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(51);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n .is-field-disabled[_v-cb8820cc] {\n opacity: 0.5;\n }\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"general",components:{},data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showNotification:!1,showSave:!1,isReplacerOff:!1,new_data:{}}},mounted:function(){this.isReplacerOff="disabled"===this.site_settings.image_replacer,this.$emit("update-status",!this.isReplacerOff)},methods:{saveChanges:function(){this.$store.dispatch("saveSettings",{settings:this.new_data})}},computed:{site_settings:function(){return this.$store.state.site_settings},getReplacerStatus:{get:function(){return!("disabled"===this.site_settings.image_replacer)},set:function(t){this.showSave=!0,this.isReplacerOff=!t,this.$emit("update-status",t),this.new_data.image_replacer=t?"enabled":"disabled"}},lazyLoadStatus:{set:function(t){this.showSave=!0,this.new_data.lazyload=t?"enabled":"disabled"},get:function(){return!("disabled"===this.site_settings.lazyload)}}}}},function(t,e){t.exports='\n <div :class="{ \'saving--option\' : this.$store.state.loading }" _v-cb8820cc="">\n <div class="field columns" _v-cb8820cc="">\n <label class="label column has-text-grey-dark" _v-cb8820cc="">\n {{strings.enable_image_replace}}\n <p class="is-italic has-text-weight-normal" _v-cb8820cc="">\n {{strings.replacer_desc}}\n </p>\n </label>\n <div class="column is-3" _v-cb8820cc="">\n <toggle-button :class="\'has-text-dark\'" v-model="getReplacerStatus" :disabled="this.$store.state.loading" :labels="{checked: strings.enabled, unchecked: strings.disabled}" :width="80" :height="25" color="#008ec2" _v-cb8820cc=""></toggle-button>\n </div>\n\n </div>\n <div class="field is-fullwidth columns" :class="{\'is-field-disabled\':isReplacerOff }" _v-cb8820cc="">\n <label class="label column has-text-grey-dark" _v-cb8820cc="">\n {{strings.toggle_lazyload}}\n <p class="is-italic has-text-weight-normal" _v-cb8820cc="">\n {{strings.lazyload_desc}}\n </p>\n </label>\n\n <div class="column is-3 " _v-cb8820cc="">\n <toggle-button :class="\'has-text-dark\'" v-model="lazyLoadStatus" :disabled="this.$store.state.loading" :labels="{checked: strings.enabled, unchecked: strings.disabled}" :width="80" :height="25" color="#008ec2" _v-cb8820cc=""></toggle-button>\n </div>\n </div>\n <div class="field is-fullwidth columns " _v-cb8820cc="">\n <div class="column is-left" _v-cb8820cc="">\n <button @click="saveChanges()" class="button is-success is-small " :class="this.$store.state.loading ? \'is-loading\' : \'\' " :disabled="!showSave" _v-cb8820cc="">\n {{strings.save_changes}}\n </button>\n </div>\n </div>\n\n </div>\n'},function(t,e,n){var o,i;n(55),o=n(57),i=n(68),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(56);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n .sample-image[_v-2bdf3418]{\n margin-top:30px;\n }\n .view-sample-image[_v-2bdf3418]{\n\n line-height: 32px;\n margin-left: 20px;\n }\n",""])},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}function i(t){return 90===t?optimoleDashboardApp.strings.options_strings.high_q_title:75===t?optimoleDashboardApp.strings.options_strings.medium_q_title:55===t?optimoleDashboardApp.strings.options_strings.low_q_title:t}function a(t){return"number"==typeof t?t:"auto"===t?90:"high_c"===t?90:"medium_c"===t?75:"low_c"===t?55:90}Object.defineProperty(e,"__esModule",{value:!0});var r=n(58),s=o(r),l=n(59),p=o(l);n(64),e.default={name:"compression",components:{VueSlider:s.default,Image_diff:p.default},data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showSave:!1,showSample:!1,loading_images:!1,showComparison:!1,new_data:{quality:a(this.$store.state.site_settings.quality),network_optimization:this.$store.state.site_settings.network_optimization},sliderOptions:{processStyle:{backgroundColor:"#3273dc"},contained:!0,dotStyle:{borderColor:"#3273dc"},min:1,max:100,tooltipFormatter:function(t){return i(t)},marks:function(t){var e={width:"12px",height:"12px",display:"block",backgroundColor:"#3273dc",borderColor:"#3273dc",boxShadow:"none",transform:"translate(-4px, -4px)"},n=i(t);return"number"!=typeof n&&{label:n,style:e}}}}},mounted:function(){},methods:{saveChanges:function(){this.$store.dispatch("saveSettings",{settings:this.new_data})},newSample:function(t){return!0!==this.showComparison&&(this.showComparison=!0),this.updateSampleImage(this.new_data.quality,t?"yes":"no"),!1},updateSampleImage:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"no";this.$store.dispatch("sampleRate",{quality:t,force:n,component:this}).then(function(t){setTimeout(function(){e.showNotification=!1},1e3)},function(t){})}},computed:{site_settings:function(){return this.$store.state.site_settings},compressionRatio:function(){return(100*parseFloat(this.sample_images.optimized_size/this.sample_images.original_size)).toFixed(0)},sample_images:function(){return this.$store.state.sample_rate},networkStatus:{set:function(t){this.showSave=!0,this.new_data.network_optimization=t?"enabled":"disabled"},get:function(){return!("disabled"===this.site_settings.network_optimization)}}}}},function(t,e,n){!function(e,o){t.exports=o(n(2))}("undefined"!=typeof self&&self,function(t){return function(t){function e(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:o})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(e.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)e.d(o,i,function(e){return t[e]}.bind(null,i));return o},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s="fb15")}({2350:function(t,e){function n(t,e){var n=t[1]||"",i=t[3];if(!i)return n;if(e&&"function"==typeof btoa){var a=o(i);return[n].concat(i.sources.map(function(t){return"/*# sourceURL="+i.sourceRoot+t+" */"})).concat([a]).join("\n")}return[n].join("\n")}function o(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=n(e,t);return e[2]?"@media "+e[2]+"{"+o+"}":o}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},i=0;i<this.length;i++){var a=this[i][0];"number"==typeof a&&(o[a]=!0)}for(i=0;i<t.length;i++){var r=t[i];"number"==typeof r[0]&&o[r[0]]||(n&&!r[2]?r[2]=n:n&&(r[2]="("+r[2]+") and ("+n+")"),e.push(r))}},e}},"499e":function(t,e,n){"use strict";function o(t,e){for(var n=[],o={},i=0;i<e.length;i++){var a=e[i],r=a[0],s=a[1],l=a[2],p=a[3],c={id:t+":"+i,css:s,media:l,sourceMap:p};o[r]?o[r].parts.push(c):n.push(o[r]={id:r,parts:[c]})}return n}function i(t,e,n,i){h=n,v=i||{};var r=o(t,e);return a(r),function(e){for(var n=[],i=0;i<r.length;i++){var s=r[i],l=d[s.id];l.refs--,n.push(l)}for(e?(r=o(t,e),a(r)):r=[],i=0;i<n.length;i++)if(l=n[i],0===l.refs){for(var p=0;p<l.parts.length;p++)l.parts[p]();delete d[l.id]}}}function a(t){for(var e=0;e<t.length;e++){var n=t[e],o=d[n.id];if(o){o.refs++;for(var i=0;i<o.parts.length;i++)o.parts[i](n.parts[i]);for(;i<n.parts.length;i++)o.parts.push(s(n.parts[i]));o.parts.length>n.parts.length&&(o.parts.length=n.parts.length)}else{var a=[];for(i=0;i<n.parts.length;i++)a.push(s(n.parts[i]));d[n.id]={id:n.id,refs:1,parts:a}}}}function r(){var t=document.createElement("style");return t.type="text/css",m.appendChild(t),t}function s(t){var e,n,o=document.querySelector("style["+g+'~="'+t.id+'"]');if(o){if(h)return b;o.parentNode.removeChild(o)}if(x){var i=f++;o=u||(u=r()),e=l.bind(null,o,i,!1),n=l.bind(null,o,i,!0)}else o=r(),e=p.bind(null,o),n=function(){o.parentNode.removeChild(o)};return e(t),function(o){if(o){if(o.css===t.css&&o.media===t.media&&o.sourceMap===t.sourceMap)return;e(t=o)}else n()}}function l(t,e,n,o){var i=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=y(e,i);else{var a=document.createTextNode(i),r=t.childNodes;r[e]&&t.removeChild(r[e]),r.length?t.insertBefore(a,r[e]):t.appendChild(a)}}function p(t,e){var n=e.css,o=e.media,i=e.sourceMap;if(o&&t.setAttribute("media",o),v.ssrId&&t.setAttribute(g,e.id),i&&(n+="\n/*# sourceURL="+i.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}n.r(e),n.d(e,"default",function(){return i});var c="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!c)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var d={},m=c&&(document.head||document.getElementsByTagName("head")[0]),u=null,f=0,h=!1,b=function(){},v=null,g="data-vue-ssr-id",x="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase()),y=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},"4abb":function(t,e,n){var o=n("df80");"string"==typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals),(0,n("499e").default)("3e7284f8",o,!0,{sourceMap:!1,shadowMode:!1})},"4ed8":function(t,e,n){var o=n("ae61");"string"==typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals),(0,n("499e").default)("57c2b2f0",o,!0,{sourceMap:!1,shadowMode:!1})},"556c":function(t,e,n){var o=n("d5ac");"string"==typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals),(0,n("499e").default)("f3ffc7f8",o,!0,{sourceMap:!1,shadowMode:!1})},"65d9":function(t,e,n){"use strict";function o(t,e){i(t,e),Object.getOwnPropertyNames(e.prototype).forEach(function(n){i(t.prototype,e.prototype,n)}),Object.getOwnPropertyNames(e).forEach(function(n){i(t,e,n)})}function i(t,e,n){(n?Reflect.getOwnMetadataKeys(e,n):Reflect.getOwnMetadataKeys(e)).forEach(function(o){var i=n?Reflect.getOwnMetadata(o,e,n):Reflect.getOwnMetadata(o,e);n?Reflect.defineMetadata(o,i,t,n):Reflect.defineMetadata(o,i,t)})}function a(t){return function(e,n,o){var i="function"==typeof e?e:e.constructor;i.__decorators__||(i.__decorators__=[]),"number"!=typeof o&&(o=void 0),i.__decorators__.push(function(e){return t(e,n,o)})}}function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return m.extend({mixins:t})}function s(t){var e=typeof t;return null==t||"object"!==e&&"function"!==e}function l(t,e){var n=e.prototype._init;e.prototype._init=function(){var e=this,n=Object.getOwnPropertyNames(t);if(t.$options.props)for(var o in t.$options.props)t.hasOwnProperty(o)||n.push(o);n.forEach(function(n){"_"!==n.charAt(0)&&Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){t[n]=e},configurable:!0})})};var o=new e;e.prototype._init=n;var i={};return Object.keys(o).forEach(function(t){void 0!==o[t]&&(i[t]=o[t])}),i}function p(t,e){void 0===e&&(e={}),e.name=e.name||t._componentTag||t.name;var n=t.prototype;Object.getOwnPropertyNames(n).forEach(function(t){if("constructor"!==t)if(b.indexOf(t)>-1)e[t]=n[t];else{var o=Object.getOwnPropertyDescriptor(n,t);void 0!==o.value?"function"==typeof o.value?(e.methods||(e.methods={}))[t]=o.value:(e.mixins||(e.mixins=[])).push({data:function(){var e;return e={},e[t]=o.value,e}}):(o.get||o.set)&&((e.computed||(e.computed={}))[t]={get:o.get,set:o.set})}}),(e.mixins||(e.mixins=[])).push({data:function(){return l(this,t)}});var i=t.__decorators__;i&&(i.forEach(function(t){return t(e)}),delete t.__decorators__);var a=Object.getPrototypeOf(t.prototype),r=a instanceof m?a.constructor:m,s=r.extend(e);return c(s,t,r),u&&o(s,t),s}function c(t,e,n){Object.getOwnPropertyNames(e).forEach(function(o){if("prototype"!==o){var i=Object.getOwnPropertyDescriptor(t,o);if(!i||i.configurable){var a=Object.getOwnPropertyDescriptor(e,o);if(!h){if("cid"===o)return;var r=Object.getOwnPropertyDescriptor(n,o);if(!s(a.value)&&r&&r.value===a.value)return}Object.defineProperty(t,o,a)}}})}function d(t){return"function"==typeof t?p(t):function(e){return p(e,t)}}Object.defineProperty(e,"__esModule",{value:!0});var m=/**
|
12 |
* vue-class-component v7.0.1
|
13 |
* (c) 2015-present Evan You
|
14 |
* @license MIT
|
@@ -18,7 +18,7 @@ function(t){return t&&"object"==typeof t&&"default"in t?t.default:t}(n("8bbf")),
|
|
18 |
* Version: 2.8.19
|
19 |
* Author: LianYue
|
20 |
*/
|
21 |
-
!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){var e=a(t);return r(e,t.body)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(){var t=document.head||document.getElementsByTagName("head")[0],e=n.styles||(n.styles={}),o="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(n,i){if(!document.querySelector('style[data-vue-ssr-id~="'+n+'"]')){var a=o?i.media||"default":n,r=e[a]||(e[a]={ids:[],parts:[],element:void 0});if(!r.ids.includes(n)){var s=i.source,l=r.ids.length;if(r.ids.push(n),i.map&&(s+="\n/*# sourceURL="+i.map.sources[0]+" */",s+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i.map))))+" */"),o&&(r.element=r.element||document.querySelector("style[data-group="+a+"]")),!r.element){var p=r.element=document.createElement("style");p.type="text/css",i.media&&p.setAttribute("media",i.media),o&&(p.setAttribute("data-group",a),p.setAttribute("data-next-index","0")),t.appendChild(p)}if(o&&(l=parseInt(r.element.getAttribute("data-next-index")),r.element.setAttribute("data-next-index",l+1)),r.element.styleSheet)r.parts.push(s),r.element.styleSheet.cssText=r.parts.filter(Boolean).join("\n");else{var c=document.createTextNode(s),d=r.element.childNodes;d[l]&&r.element.removeChild(d[l]),d.length?r.element.insertBefore(c,d[l]):r.element.appendChild(c)}}}}}function o(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function i(){var t=document.head||document.getElementsByTagName("head")[0],e=i.styles||(i.styles={}),n="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(o,i){if(!document.querySelector('style[data-vue-ssr-id~="'+o+'"]')){var a=n?i.media||"default":o,r=e[a]||(e[a]={ids:[],parts:[],element:void 0});if(!r.ids.includes(o)){var s=i.source,l=r.ids.length;if(r.ids.push(o),i.map&&(s+="\n/*# sourceURL="+i.map.sources[0]+" */",s+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i.map))))+" */"),n&&(r.element=r.element||document.querySelector("style[data-group="+a+"]")),!r.element){var p=r.element=document.createElement("style");p.type="text/css",i.media&&p.setAttribute("media",i.media),n&&(p.setAttribute("data-group",a),p.setAttribute("data-next-index","0")),t.appendChild(p)}if(n&&(l=parseInt(r.element.getAttribute("data-next-index")),r.element.setAttribute("data-next-index",l+1)),r.element.styleSheet)r.parts.push(s),r.element.styleSheet.cssText=r.parts.filter(Boolean).join("\n");else{var c=document.createTextNode(s),d=r.element.childNodes;d[l]&&r.element.removeChild(d[l]),d.length?r.element.insertBefore(c,d[l]):r.element.appendChild(c)}}}}}var a=function(t){var e=new XMLHttpRequest;return e.open(t.method||"GET",t.url),e.responseType="json",t.headers&&Object.keys(t.headers).forEach(function(n){e.setRequestHeader(n,t.headers[n])}),e},r=function(t,e){return new Promise(function(n,o){t.onload=function(){if(t.status>=200&&t.status<300){var e;try{e=JSON.parse(t.response)}catch(n){e=t.response}n(e)}else o(t.response)},t.onerror=function(){return o(t.response)},t.send(JSON.stringify(e))})},s=function(t,e){var n=new FormData;for(var o in e)n.append(o,e[o]);return new Promise(function(e,o){t.onload=function(){if(t.status>=200&&t.status<300){var n;try{n=JSON.parse(t.response)}catch(e){n=t.response}e(n)}else o(t.response)},t.onerror=function(){return o(t.response)},t.send(n)})},l=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(){function n(t,o){e(this,n),this.file=t,this.options=o}return l(n,[{key:"createChunks",value:function(){this.chunks=[];for(var t=0,e=this.chunkSize;t<this.fileSize;)this.chunks.push({blob:this.file.file.slice(t,e),startOffset:t,active:!1,retries:this.maxRetries}),t=e,e=t+this.chunkSize}},{key:"updateFileProgress",value:function(){this.file.progress=this.progress}},{key:"pause",value:function(){this.file.active=!1,this.stopChunks()}},{key:"stopChunks",value:function(){this.chunksUploading.forEach(function(t){t.xhr.abort(),t.active=!1})}},{key:"resume",value:function(){this.file.active=!0,this.startChunking()}},{key:"upload",value:function(){var t=this;return this.promise=new Promise(function(e,n){t.resolve=e,t.reject=n}),this.start(),this.promise}},{key:"start",value:function(){var e=this;t({method:"POST",headers:Object.assign({},this.headers,{"Content-Type":"application/json"}),url:this.action,body:Object.assign(this.startBody,{phase:"start",mime_type:this.fileType,size:this.fileSize,name:this.fileName})}).then(function(t){if("success"!==t.status)return e.file.response=t,e.reject("server");e.sessionId=t.data.session_id,e.chunkSize=t.data.end_offset,e.createChunks(),e.startChunking()}).catch(function(t){e.file.response=t,e.reject("server")})}},{key:"startChunking",value:function(){for(var t=0;t<this.maxActiveChunks;t++)this.uploadNextChunk()}},{key:"uploadNextChunk",value:function(){if(this.file.active){if(this.hasChunksToUpload)return this.uploadChunk(this.chunksToUpload[0]);if(0===this.chunksUploading.length)return this.finish()}}},{key:"uploadChunk",value:function(t){var e=this;t.progress=0,t.active=!0,this.updateFileProgress(),t.xhr=a({method:"POST",headers:this.headers,url:this.action}),t.xhr.upload.addEventListener("progress",function(e){e.lengthComputable&&(t.progress=Math.round(e.loaded/e.total*100))},!1),s(t.xhr,Object.assign(this.uploadBody,{phase:"upload",session_id:this.sessionId,start_offset:t.startOffset,chunk:t.blob})).then(function(n){if(t.active=!1,"success"===n.status)t.uploaded=!0;else if(t.retries--<=0)return e.stopChunks(),e.reject("upload");e.uploadNextChunk()}).catch(function(){if(t.active=!1,t.retries--<=0)return e.stopChunks(),e.reject("upload");e.uploadNextChunk()})}},{key:"finish",value:function(){var e=this;this.updateFileProgress(),t({method:"POST",headers:Object.assign({},this.headers,{"Content-Type":"application/json"}),url:this.action,body:Object.assign(this.finishBody,{phase:"finish",session_id:this.sessionId})}).then(function(t){if(e.file.response=t,"success"!==t.status)return e.reject("server");e.resolve(t)}).catch(function(t){e.file.response=t,e.reject("server")})}},{key:"maxRetries",get:function(){return parseInt(this.options.maxRetries)}},{key:"maxActiveChunks",get:function(){return parseInt(this.options.maxActive)}},{key:"fileType",get:function(){return this.file.type}},{key:"fileSize",get:function(){return this.file.size}},{key:"fileName",get:function(){return this.file.name}},{key:"action",get:function(){return this.options.action||null}},{key:"startBody",get:function(){return this.options.startBody||{}}},{key:"uploadBody",get:function(){return this.options.uploadBody||{}}},{key:"finishBody",get:function(){return this.options.finishBody||{}}},{key:"headers",get:function(){return this.options.headers||{}}},{key:"readyToUpload",get:function(){return!!this.chunks}},{key:"progress",get:function(){var t=this,e=this.chunksUploaded.length/this.chunks.length*100,n=this.chunksUploading.reduce(function(e,n){return e+(0|n.progress)/t.chunks.length},0);return Math.min(e+n,100)}},{key:"chunksToUpload",get:function(){return this.chunks.filter(function(t){return!t.active&&!t.uploaded})}},{key:"hasChunksToUpload",get:function(){return this.chunksToUpload.length>0}},{key:"chunksUploading",get:function(){return this.chunks.filter(function(t){return!!t.xhr&&!!t.active})}},{key:"chunksUploaded",get:function(){return this.chunks.filter(function(t){return!!t.uploaded})}}]),n}(),c={methods:{change:function(t){this.$parent.addInputFile(t.target),t.target.files?(t.target.value="",/safari/i.test(navigator.userAgent)||(t.target.type="",t.target.type="file")):(this.$destroy(),new this.constructor({parent:this.$parent,el:this.$el}))}}},d=c,m=function(){var t=this,e=t.$createElement;return(t._self._c||e)("input",{attrs:{type:"file",name:t.$parent.name,id:t.$parent.inputId||t.$parent.name,accept:t.$parent.accept,capture:t.$parent.capture,disabled:t.$parent.disabled,webkitdirectory:t.$parent.directory&&t.$parent.features.directory,directory:t.$parent.directory&&t.$parent.features.directory,multiple:t.$parent.multiple&&t.$parent.features.html5},on:{change:t.change}})},u=[],f=function(t,e,n,o,i,a,r,s){var l=("function"==typeof n?n.options:n)||{};return l.render||(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,i&&(l.functional=!0)),l._scopeId=o,l}({render:m,staticRenderFns:u},void 0,d,void 0,!1,void 0,n,void 0),h=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},v={headers:{},action:"",minSize:1048576,maxActive:3,maxRetries:5,handler:p},g={components:{InputFile:f},props:{inputId:{type:String},name:{type:String,default:"file"},accept:{type:String},capture:{},disabled:{},multiple:{type:Boolean},maximum:{type:Number,default:function(){return this.multiple?0:1}},addIndex:{type:[Boolean,Number]},directory:{type:Boolean},postAction:{type:String},putAction:{type:String},customAction:{type:Function},headers:{type:Object,default:Object},data:{type:Object,default:Object},timeout:{type:Number,default:0},drop:{default:!1},dropDirectory:{type:Boolean,default:!0},size:{type:Number,default:0},extensions:{default:Array},value:{type:Array,default:Array},thread:{type:Number,default:1},chunkEnabled:{type:Boolean,default:!1},chunk:{type:Object,default:function(){return v}}},data:function(){return{files:this.value,features:{html5:!0,directory:!1,drag:!1},active:!1,dropActive:!1,uploading:0,destroy:!1}},mounted:function(){var t=document.createElement("input");if(t.type="file",t.multiple=!0,window.FormData&&t.files?("boolean"!=typeof t.webkitdirectory&&"boolean"!=typeof t.directory||(this.features.directory=!0),this.features.html5&&void 0!==t.ondrop&&(this.features.drop=!0)):this.features.html5=!1,this.maps={},this.files)for(var e=0;e<this.files.length;e++){var n=this.files[e];this.maps[n.id]=n}this.$nextTick(function(){this.$parent&&this.$parent.$forceUpdate(),this.watchDrop(this.drop)})},beforeDestroy:function(){this.destroy=!0,this.active=!1},computed:{uploaded:function(){for(var t=void 0,e=0;e<this.files.length;e++)if(t=this.files[e],t.fileObject&&!t.error&&!t.success)return!1;return!0},chunkOptions:function(){return Object.assign(v,this.chunk)},className:function(){return["file-uploads",this.features.html5?"file-uploads-html5":"file-uploads-html4",this.features.directory&&this.directory?"file-uploads-directory":void 0,this.features.drop&&this.drop?"file-uploads-drop":void 0,this.disabled?"file-uploads-disabled":void 0]}},watch:{active:function(t){this.watchActive(t)},dropActive:function(){this.$parent&&this.$parent.$forceUpdate()},drop:function(t){this.watchDrop(t)},value:function(t){if(this.files!==t){this.files=t;var e=this.maps;this.maps={};for(var n=0;n<this.files.length;n++){var o=this.files[n];this.maps[o.id]=o}for(var i in this.maps){var a=this.maps[i],r=e[i];a!==r&&this.emitFile(a,r)}for(var s in e)this.maps[s]||this.emitFile(void 0,e[s])}}},methods:{clear:function(){if(this.files.length){var t=this.files;this.files=[],this.maps={},this.emitInput();for(var e=0;e<t.length;e++)this.emitFile(void 0,t[e])}return!0},get:function(t){return!!t&&("object"===(void 0===t?"undefined":b(t))?this.maps[t.id]||!1:this.maps[t]||!1)},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.addIndex,n=t,o=n instanceof Array;o||(n=[n]);for(var i=[],a=0;a<n.length;a++){var r=n[a];this.features.html5&&r instanceof Blob&&(r={file:r,size:r.size,name:r.webkitRelativePath||r.relativePath||r.name||"unknown",type:r.type});var s=!1;if(!1===r.fileObject||(r.fileObject?s=!0:"undefined"!=typeof Element&&r.el instanceof Element?s=!0:"undefined"!=typeof Blob&&r.file instanceof Blob&&(s=!0)),s&&(r=h({fileObject:!0,size:-1,name:"Filename",type:"",active:!1,error:"",success:!1,putAction:this.putAction,postAction:this.postAction,timeout:this.timeout},r,{response:{},progress:"0.00",speed:0}),r.data=h({},this.data,r.data?r.data:{}),r.headers=h({},this.headers,r.headers?r.headers:{})),r.id||(r.id=Math.random().toString(36).substr(2)),!this.emitFilter(r,void 0)){if(this.maximum>1&&i.length+this.files.length>=this.maximum)break;if(i.push(r),1===this.maximum)break}}if(!i.length)return!1;1===this.maximum&&this.clear();var l=void 0;if(!0===e||0===e)l=i.concat(this.files);else if(e){var p;l=this.files.concat([]),(p=l).splice.apply(p,[e,0].concat(i))}else l=this.files.concat(i);this.files=l;for(var c=0;c<i.length;c++){var d=i[c];this.maps[d.id]=d}this.emitInput();for(var m=0;m<i.length;m++)this.emitFile(i[m],void 0);return o?i:i[0]},addInputFile:function(t){var e=[];if(t.files)for(var n=0;n<t.files.length;n++){var o=t.files[n];e.push({size:o.size,name:o.webkitRelativePath||o.relativePath||o.name,type:o.type,file:o})}else{var i=t.value.replace(/\\/g,"/").split("/");delete t.__vuex__,e.push({name:i[i.length-1],el:t})}return this.add(e)},addDataTransfer:function(t){var e=this,n=[];if(t.items&&t.items.length){for(var i=[],a=0;a<t.items.length;a++){var r=t.items[a];r=r.getAsEntry?r.getAsEntry()||r.getAsFile():r.webkitGetAsEntry?r.webkitGetAsEntry()||r.getAsFile():r.getAsFile(),r&&i.push(r)}return new Promise(function(t,a){!function a(r){var s=i[r];if(!s||e.maximum>0&&n.length>=e.maximum)return t(e.add(n));e.getEntry(s).then(function(t){n.push.apply(n,o(t)),a(r+1)})}(0)})}if(t.files.length){for(var s=0;s<t.files.length&&(n.push(t.files[s]),!(this.maximum>0&&n.length>=this.maximum));s++);return Promise.resolve(this.add(n))}return Promise.resolve([])},getEntry:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new Promise(function(i,a){if(t.isFile)t.file(function(t){i([{size:t.size,name:n+t.name,type:t.type,file:t}])});else if(t.isDirectory&&e.dropDirectory){var r=[],s=t.createReader();!function a(){s.readEntries(function(s){!function l(p){return!s[p]&&0===p||e.maximum>0&&r.length>=e.maximum?i(r):s[p]?void e.getEntry(s[p],n+t.name+"/").then(function(t){r.push.apply(r,o(t)),l(p+1)}):a()}(0)})}()}else i([])})},replace:function(t,e){var n=this.get(t),o=this.get(e);if(!n||!o||n===o)return!1;var i=this.files.concat([]),a=i.indexOf(n),r=i.indexOf(o);return-1!==a&&-1!==r&&(i[a]=o,i[r]=n,this.files=i,this.emitInput(),!0)},remove:function(t){var e=this.get(t);if(e){if(this.emitFilter(void 0,e))return!1;var n=this.files.concat([]),o=n.indexOf(e);if(-1===o)return console.error("remove",e),!1;n.splice(o,1),this.files=n,delete this.maps[e.id],this.emitInput(),this.emitFile(void 0,e)}return e},update:function(t,e){var n=this.get(t);if(n){var o=h({},n,e);if(!n.fileObject||!n.active||o.active||o.error||o.success||(o.error="abort"),this.emitFilter(o,n))return!1;var i=this.files.concat([]),a=i.indexOf(n);return-1===a?(console.error("update",n),!1):(i.splice(a,1,o),this.files=i,delete this.maps[n.id],this.maps[o.id]=o,this.emitInput(),this.emitFile(o,n),o)}return!1},emitFilter:function(t,e){var n=!1;return this.$emit("input-filter",t,e,function(){return n=!0}),n},emitFile:function(t,e){this.$emit("input-file",t,e),!(t&&t.fileObject&&t.active)||e&&e.active?t&&t.fileObject&&t.active||!e||!e.fileObject||!e.active||this.uploading--:(this.uploading++,this.$nextTick(function(){var e=this;setTimeout(function(){e.upload(t).then(function(){(t=e.get(t))&&t.fileObject&&e.update(t,{active:!1,success:!t.error})}).catch(function(n){e.update(t,{active:!1,success:!1,error:n.code||n.error||n.message||n})})},parseInt(50*Math.random()+50,10))})),!this.active||Boolean(t)===Boolean(e)&&t.active===e.active||this.watchActive(!0)},emitInput:function(){this.$emit("input",this.files)},upload:function(t){var e=this.get(t);if(!e)return Promise.reject("not_exists");if(!e.fileObject)return Promise.reject("file_object");if(e.error)return Promise.reject(e.error);if(e.success)return Promise.resolve(e);var n=this.extensions;if(n&&(n.length||void 0===n.length)&&("object"===(void 0===n?"undefined":b(n))&&n instanceof RegExp||("string"==typeof n&&(n=n.split(",").map(function(t){return t.trim()}).filter(function(t){return t})),n=new RegExp("\\.("+n.join("|").replace(/\./g,"\\.")+")$","i")),-1===e.name.search(n)))return Promise.reject("extension");if(this.size>0&&e.size>=0&&e.size>this.size)return Promise.reject("size");if(this.customAction)return this.customAction(e,this);if(this.features.html5){if(this.shouldUseChunkUpload(e))return this.uploadChunk(e);if(e.putAction)return this.uploadPut(e);if(e.postAction)return this.uploadHtml5(e)}return e.postAction?this.uploadHtml4(e):Promise.reject("No action configured")},shouldUseChunkUpload:function(t){return this.chunkEnabled&&!!this.chunkOptions.handler&&t.size>this.chunkOptions.minSize},uploadChunk:function(t){var e=this.chunkOptions.handler;return t.chunk=new e(t,this.chunkOptions),t.chunk.upload()},uploadPut:function(t){var e=[],n=void 0;for(var o in t.data)null!==(n=t.data[o])&&void 0!==n&&e.push(encodeURIComponent(o)+"="+encodeURIComponent(n));var i=e.length?(-1===t.putAction.indexOf("?")?"?":"&")+e.join("&"):"",a=new XMLHttpRequest;return a.open("PUT",t.putAction+i),this.uploadXhr(a,t,t.file)},uploadHtml5:function(t){var e=new window.FormData,n=void 0;for(var o in t.data)n=t.data[o],n&&"object"===(void 0===n?"undefined":b(n))&&"function"!=typeof n.toString?n instanceof File?e.append(o,n,n.name):e.append(o,JSON.stringify(n)):null!==n&&void 0!==n&&e.append(o,n);e.append(this.name,t.file,t.file.filename||t.name);var i=new XMLHttpRequest;return i.open("POST",t.postAction),this.uploadXhr(i,t,e)},uploadXhr:function(t,e,n){var o=this,i=e,a=0,r=0;t.upload.onprogress=function(t){if(i=o.get(i),t.lengthComputable&&i&&i.fileObject&&i.active){var e=Math.round(Date.now()/1e3);e!==a&&(a=e,i=o.update(i,{progress:(t.loaded/t.total*100).toFixed(2),speed:t.loaded-r}),r=t.loaded)}};var s=setInterval(function(){if(!(i=o.get(i))||!i.fileObject||i.success||i.error||!i.active){s&&(clearInterval(s),s=!1);try{t.abort(),t.timeout=1}catch(t){}}},100);return new Promise(function(e,a){var r=void 0,l=function(n){if(!r){if(r=!0,s&&(clearInterval(s),s=!1),!(i=o.get(i)))return a("not_exists");if(!i.fileObject)return a("file_object");if(i.error)return a(i.error);if(!i.active)return a("abort");if(i.success)return e(i);var l={};switch(n.type){case"timeout":case"abort":l.error=n.type;break;case"error":t.status?t.status>=500?l.error="server":t.status>=400&&(l.error="denied"):l.error="network";break;default:t.status>=500?l.error="server":t.status>=400?l.error="denied":l.progress="100.00"}if(t.responseText){var p=t.getResponseHeader("Content-Type");p&&-1!==p.indexOf("/json")?l.response=JSON.parse(t.responseText):l.response=t.responseText}return i=o.update(i,l),i.error?a(i.error):e(i)}};t.onload=l,t.onerror=l,t.onabort=l,t.ontimeout=l,i.timeout&&(t.timeout=i.timeout);for(var p in i.headers)t.setRequestHeader(p,i.headers[p]);i=o.update(i,{xhr:t}),t.send(n)})},uploadHtml4:function(t){var e=this,n=t,o=function(t){27===t.keyCode&&t.preventDefault()},i=document.createElement("iframe");i.id="upload-iframe-"+n.id,i.name="upload-iframe-"+n.id,i.src="about:blank",i.setAttribute("style","width:1px;height:1px;top:-999em;position:absolute; margin-top:-999em;");var a=document.createElement("form");a.action=n.postAction,a.name="upload-form-"+n.id,a.setAttribute("method","POST"),a.setAttribute("target","upload-iframe-"+n.id),a.setAttribute("enctype","multipart/form-data");var r=void 0,s=void 0;for(var l in n.data)r=n.data[l],r&&"object"===(void 0===r?"undefined":b(r))&&"function"!=typeof r.toString&&(r=JSON.stringify(r)),null!==r&&void 0!==r&&(s=document.createElement("input"),s.type="hidden",s.name=l,s.value=r,a.appendChild(s));a.appendChild(n.el),document.body.appendChild(i).appendChild(a);var p=function(){var t=void 0;try{i.contentWindow&&(t=i.contentWindow.document)}catch(t){}if(!t)try{t=i.contentDocument?i.contentDocument:i.document}catch(e){t=i.document}return t&&t.body?t.body.innerHTML:null};return new Promise(function(t,r){setTimeout(function(){if(!(n=e.update(n,{iframe:i})))return r("not_exists");var s=setInterval(function(){(n=e.get(n))&&n.fileObject&&!n.success&&!n.error&&n.active||(s&&(clearInterval(s),s=!1),i.onabort({type:n?"abort":"not_exists"}))},100),l=void 0,c=function(i){if(!l){if(l=!0,s&&(clearInterval(s),s=!1),document.body.removeEventListener("keydown",o),!(n=e.get(n)))return r("not_exists");if(!n.fileObject)return r("file_object");if(n.error)return r(n.error);if(!n.active)return r("abort");if(n.success)return t(n);var a=p(),c={};switch(i.type){case"abort":c.error="abort";break;case"error":n.error?c.error=n.error:c.error=null===a?"network":"denied";break;default:n.error?c.error=n.error:null===c?c.error="network":c.progress="100.00"}if(null!==a){if(a&&"{"===a.substr(0,1)&&"}"===a.substr(a.length-1,1))try{a=JSON.parse(a)}catch(t){}c.response=a}return n=e.update(n,c),n.error?r(n.error):t(n)}};i.onload=c,i.onerror=c,i.onabort=c,document.body.addEventListener("keydown",o),a.submit()},50)}).then(function(t){return i.parentNode&&i.parentNode.removeChild(i),t}).catch(function(t){return i.parentNode&&i.parentNode.removeChild(i),t})},watchActive:function(t){for(var e=void 0,n=0;e=this.files[n];)if(n++,e.fileObject)if(t&&!this.destroy){if(this.uploading>=this.thread||this.uploading&&!this.features.html5)break;e.active||e.error||e.success||this.update(e,{active:!0})}else e.active&&this.update(e,{active:!1});else;0===this.uploading&&(this.active=!1)},watchDrop:function(t){var e=t;if(this.features.drop){if(this.dropElement)try{document.removeEventListener("dragenter",this.onDragenter,!1),document.removeEventListener("dragleave",this.onDragleave,!1),document.removeEventListener("drop",this.onDocumentDrop,!1),this.dropElement.removeEventListener("dragover",this.onDragover,!1),this.dropElement.removeEventListener("drop",this.onDrop,!1)}catch(t){}e?"string"==typeof e?e=document.querySelector(e)||this.$root.$el.querySelector(e):!0===e&&(e=this.$parent.$el):e=!1,this.dropElement=e,this.dropElement&&(document.addEventListener("dragenter",this.onDragenter,!1),document.addEventListener("dragleave",this.onDragleave,!1),document.addEventListener("drop",this.onDocumentDrop,!1),this.dropElement.addEventListener("dragover",this.onDragover,!1),this.dropElement.addEventListener("drop",this.onDrop,!1))}},onDragenter:function(t){if(t.preventDefault(),!this.dropActive&&t.dataTransfer){var e=t.dataTransfer;e.files&&e.files.length?this.dropActive=!0:e.types?e.types.indexOf&&-1!==e.types.indexOf("Files")?this.dropActive=!0:e.types.contains&&e.types.contains("Files")&&(this.dropActive=!0):this.dropActive=!0}},onDragleave:function(t){t.preventDefault(),this.dropActive&&("HTML"===t.target.nodeName||t.target===t.explicitOriginalTarget||!t.fromElement&&(t.clientX<=0||t.clientY<=0||t.clientX>=window.innerWidth||t.clientY>=window.innerHeight))&&(this.dropActive=!1)},onDragover:function(t){t.preventDefault()},onDocumentDrop:function(){this.dropActive=!1},onDrop:function(t){t.preventDefault(),this.addDataTransfer(t.dataTransfer)}}},x=g,y=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("span",{class:t.className},[t._t("default"),t._v(" "),n("label",{attrs:{for:t.inputId||t.name}}),t._v(" "),n("input-file")],2)},w=[],k=function(t){t&&t("data-v-595958af_0",{source:"\n.file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block\n}\n.file-uploads.file-uploads-html4 input,.file-uploads.file-uploads-html5 label{background:#fff;opacity:0;font-size:20em;z-index:1;top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%\n}\n.file-uploads.file-uploads-html4 label,.file-uploads.file-uploads-html5 input{background:rgba(255,255,255,0);overflow:hidden;position:fixed;width:1px;height:1px;z-index:-1;opacity:0\n}",map:void 0,media:void 0})},_=function(t,e,n,o,i,a,r,s){var l=("function"==typeof n?n.options:n)||{};l.render||(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,i&&(l.functional=!0)),l._scopeId=o;var p=void 0;if(e&&(p=function(t){e.call(this,r(t))}),void 0!==p)if(l.functional){var c=l.render;l.render=function(t,e){return p.call(e),c(t,e)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,p):[p]}return l}({render:y,staticRenderFns:w},k,x,void 0,!1,void 0,i,void 0),C=Object.freeze({default:_});return C&&_||C})},function(t,e){t.exports='\n\t<div _v-6d81614d="">\n\t\t<h4 _v-6d81614d="">{{strings.add_desc}}</h4>\n\t\t<div class="field columns" _v-6d81614d="">\n\t\t\t<div class="column" v-for="file in files" _v-6d81614d="">\n <span class="tag" _v-6d81614d="">\n <i _v-6d81614d="">{{file.name}}</i>\n <i v-if="!file.active && !file.success && file.error === \'\'" class="dashicons dashicons-yes icon has-text-grey-light" _v-6d81614d=""></i>\n <i v-else-if="file.active" class="dashicons dashicons-marker icon spin has-text-warning" _v-6d81614d=""></i>\n <i v-else-if="!file.active && file.success" class="dashicons dashicons-yes icon has-text-success" _v-6d81614d=""></i>\n <i v-else="" class="dashicons dashicons-no-alt icon has-text-danger" _v-6d81614d=""></i>\n </span>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class="column " _v-6d81614d="">\n\t\t\t<file-upload class="button is-secondary is-rounded" :post-action=" global.root + \'/add_watermark\'" :headers="{\'X-WP-Nonce\': global.nonce}" extensions="gif,jpg,jpeg,png,webp" accept="image/png,image/gif,image/jpeg,image/webp" :size="1024 * 1024 * 10" v-model="files" @input-filter="inputFilter" @input-file="inputFile" :disabled="loading" ref="upload" _v-6d81614d="">\n\t\t\t\t<i class="dashicons dashicons-plus icon" _v-6d81614d=""></i>\n\t\t\t\t{{strings.upload}}\n\t\t\t</file-upload>\n\t\t\t<br _v-6d81614d=""><br _v-6d81614d=""><span class="tag is-danger" v-if="is_error" _v-6d81614d="">{{error_message}}</span>\n\t\t</div>\n\t\t<hr _v-6d81614d="">\n\t\t<div class="box" _v-6d81614d="">\n\t\t\t<h3 _v-6d81614d=""><span class="dashicons dashicons-menu" _v-6d81614d=""></span> {{strings.list_header}} </h3>\n\t\t\t<small _v-6d81614d=""><i _v-6d81614d="">{{strings.max_allowed}}</i></small>\n\t\t\t\n\t\t\t<div class="optimized-images" _v-6d81614d="">\n\t\t\t\t<div v-if="!noImages" _v-6d81614d="">\n\t\t\t\t\t<h3 class="has-text-centered" _v-6d81614d="">{{strings.last}} {{strings.optimized_images}}</h3>\n\t\t\t\t\t<table class="table is-striped is-hoverable is-fullwidth" _v-6d81614d="">\n\t\t\t\t\t\t<thead _v-6d81614d="">\n\t\t\t\t\t\t<tr _v-6d81614d="">\n\t\t\t\t\t\t\t<th class="optml-image-heading" _v-6d81614d="">{{strings.id}}</th>\n\t\t\t\t\t\t\t<th class="optml-image-heading" _v-6d81614d="">{{strings.image}}</th>\n\t\t\t\t\t\t\t<th class="optml-image-heading" _v-6d81614d="">{{strings.action}}</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody _v-6d81614d="">\n\t\t\t\t\t\t<tr v-for="(item, index) in watermarkData" _v-6d81614d="">\n\t\t\t\t\t\t\t<td _v-6d81614d=""><code _v-6d81614d="">#{{item.ID}}</code></td>\n\t\t\t\t\t\t\t<td _v-6d81614d=""><img :src="item.guid" class="optml-image-watermark" width="50" _v-6d81614d=""></td>\n\t\t\t\t\t\t\t<td width="50" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a @click="removeWatermark(item.ID)" class="button is-small is-danger is-rounded" :class="{\'is-loading\':loading}" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t<span class="dashicons dashicons-no-alt icon" _v-6d81614d=""></span>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t\t\n\t\t\t\t\t<span class="tag is-success" v-if="loading" _v-6d81614d="">\n\t\t\t\t\t{{strings.loading_remove_watermark}}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<table class="table is-striped is-hoverable is-fullwidth" v-if="noImages" _v-6d81614d="">\n\t\t\t\t<thead _v-6d81614d="">\n\t\t\t\t<tr _v-6d81614d="">\n\t\t\t\t\t<th class="optml-image-heading has-text-centered" v-html="strings.no_images_found" _v-6d81614d=""></th>\n\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t</table>\n\t\t\t<hr _v-6d81614d="">\n\t\t\t<h3 _v-6d81614d=""><span class="dashicons dashicons-grid-view" _v-6d81614d=""></span> {{strings.settings_header}} </h3>\n\t\t\t<br _v-6d81614d="">\n\t\t\t<div class="field is-fullwidth columns" _v-6d81614d="">\n\t\t\t\t<label class="label is-half column has-text-grey-dark no-padding-right " _v-6d81614d="">\n\t\t\t\t\t{{strings.wm_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.wm_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t\n\t\t\t\t<div class="column is-paddingless" _v-6d81614d="">\n\t\t\t\t\t<div class="columns" _v-6d81614d="">\n\t\t\t\t\t\t<div class="field column is-narrow" _v-6d81614d="">\n\t\t\t\t\t\t\t<div class="select" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<select title="Watermark Selection" v-model="selectedWatermark" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t<option value="-1" _v-6d81614d="">No watermark</option>\n\t\t\t\t\t\t\t\t\t<option v-for="(item, index) in watermarkData" :value="item.ID" _v-6d81614d="">#({{item.ID}})\n\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<div class="field is-fullwidth columns" _v-6d81614d="">\n\t\t\t\t<label class="label is-half column has-text-grey-dark no-padding-right " _v-6d81614d="">\n\t\t\t\t\t{{strings.opacity_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.opacity_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t\n\t\t\t\t<div class="column is-paddingless" _v-6d81614d="">\n\t\t\t\t\t<div class="columns" _v-6d81614d="">\n\t\t\t\t\t\t<div class="field column is-narrow has-addons" _v-6d81614d="">\n\t\t\t\t\t\t\t<p class="control" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a class="button is-small is-static" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t{{strings.opacity_field}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class="control " _v-6d81614d="">\n\t\t\t\t\t\t\t\t<input v-model="watermarkOpacity" class="input is-small" type="number" min="0" max="100" _v-6d81614d="">\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<div class="field columns" _v-6d81614d="">\n\t\t\t\t<label class="label column has-text-grey-dark" _v-6d81614d="">\n\t\t\t\t\t{{strings.position_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.position_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t<div class="column buttons " _v-6d81614d="">\n\t\t\t\t\t<div class="field columns is-gapless is-marginless " _v-6d81614d="">\n\t\t\t\t\t\t<div class="is-fullwidth optml-layout-grid" _v-6d81614d="">\n\t\t\t\t\t\t\t<a @click="changePosition(\'nowe\')" :class="{ \'is-info\':isActivePosition (\'nowe\'), \' is-selected\':watermarkSettings.position === \'nowe\' }" class="grid-button " :title="strings.pos_nowe_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'no\')" :class="{ \'is-info\':isActivePosition (\'no\'), \' is-selected\':watermarkSettings.position === \'no\' }" class="grid-button " :title="strings.pos_no_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'noea\')" :class="{ \'is-info\':isActivePosition (\'noea\'), \' is-selected\':watermarkSettings.position === \'noea\' }" class="grid-button" :title="strings.pos_noea_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'we\')" :class="{ \'is-info\':isActivePosition (\'we\'), \' is-selected\':watermarkSettings.position === \'we\' }" class="grid-button" :title="strings.pos_we_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'ce\')" :class="{ \'is-info\':isActivePosition (\'ce\'), \' is-selected\':watermarkSettings.position === \'ce\' }" class="grid-button" :title="strings.pos_ce_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'ea\')" :class="{ \'is-info\':isActivePosition (\'ea\'), \' is-selected\':watermarkSettings.position === \'ea\' }" class="grid-button" :title="strings.pos_ea_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'sowe\')" :class="{ \'is-info\':isActivePosition (\'sowe\'), \' is-selected\':watermarkSettings.position === \'sowe\' }" class="grid-button" :title="strings.pos_sowe_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'so\')" :class="{ \'is-info\':isActivePosition (\'so\'), \' is-selected\':watermarkSettings.position === \'so\' }" class="grid-button" :title="strings.pos_so_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'soea\')" :class="{ \'is-info\':isActivePosition (\'soea\'), \' is-selected\':watermarkSettings.position === \'soea\' }" class="grid-button" :title="strings.pos_soea_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<br _v-6d81614d="">\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<div class="field is-fullwidth columns " _v-6d81614d="">\n\t\t\t\t<label class="label is-half column has-text-grey-dark no-padding-right " _v-6d81614d="">\n\t\t\t\t\t{{strings.offset_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.offset_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t\n\t\t\t\t<div class="column is-paddingless" _v-6d81614d="">\n\t\t\t\t\t<div class="columns" _v-6d81614d="">\n\t\t\t\t\t\t<div class="field column is-narrow has-addons" _v-6d81614d="">\n\t\t\t\t\t\t\t<p class="control" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a class="button is-small is-static" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t{{strings.offset_x_field}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class="control " _v-6d81614d="">\n\t\t\t\t\t\t\t\t<input v-model="watermarkX" class="input is-tiny is-small" type="number" _v-6d81614d="">\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="field column is-narrow has-addons" _v-6d81614d="">\n\t\t\t\t\t\t\t<p class="control" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a class="button is-small is-static" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t{{strings.offset_y_field}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class="control " _v-6d81614d="">\n\t\t\t\t\t\t\t\t<input v-model="watermarkY" class="input is-small is-tiny" type="number" _v-6d81614d="">\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<div class="field is-fullwidth columns" _v-6d81614d="">\n\t\t\t\t<label class="label is-half column has-text-grey-dark no-padding-right " _v-6d81614d="">\n\t\t\t\t\t{{strings.scale_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.scale_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t\n\t\t\t\t<div class="column is-paddingless" _v-6d81614d="">\n\t\t\t\t\t<div class="columns" _v-6d81614d="">\n\t\t\t\t\t\t<div class="field column is-narrow has-addons" _v-6d81614d="">\n\t\t\t\t\t\t\t<p class="control" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a class="button is-small is-static" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t{{strings.scale_field}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class="control " _v-6d81614d="">\n\t\t\t\t\t\t\t\t<input v-model="watermarkScale" class="input is-small" type="number" min="0" max="100" _v-6d81614d="">\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<p class="control column has-text-centered-desktop has-text-left-touch " _v-6d81614d="">\n\t\t\t\t<a @click="saveChanges()" class="button is-small is-success " :class="{\'is-loading\':loading}" _v-6d81614d="">\n\t\t\t\t\t<span class="dashicons dashicons-yes icon" _v-6d81614d=""></span>\n\t\t\t\t\t<span _v-6d81614d="">\t{{strings.save_changes}}</span>\n\t\t\t\t</a>\n\t\t\t</p>\n\t\t</div>\n\t</div>\n'},function(t,e,n){var o,i;n(75),o=n(77),i=n(78),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(76);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"resize",data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showSave:!1,new_data:{}}},mounted:function(){},methods:{saveChanges:function(){this.$store.dispatch("saveSettings",{settings:this.new_data})}},computed:{site_settings:function(){return this.$store.state.site_settings},widthStatus:{set:function(t){this.showSave=!0,this.new_data.max_width=t},get:function(){return this.site_settings.max_width}},heightStatus:{set:function(t){this.showSave=!0,this.new_data.max_height=t},get:function(){return this.site_settings.max_height}},resizeSmart:{set:function(t){this.showSave=!0,this.new_data.resize_smart=t?"enabled":"disabled"},get:function(){return!("disabled"===this.site_settings.resize_smart)}}}}},function(t,e){t.exports='\n <div :class="{ \'saving--option\' : this.$store.state.loading }" _v-018981f2="">\n <div class="field columns" _v-018981f2="">\n <label class="label column has-text-grey-dark" _v-018981f2="">\n {{strings.enable_resize_smart_title}}\n <p class="is-italic has-text-weight-normal" _v-018981f2="">\n {{strings.enable_resize_smart_desc}}\n </p>\n </label>\n <div class="column is-3" _v-018981f2="">\n <toggle-button :class="\'has-text-dark\'" v-model="resizeSmart" :disabled="this.$store.state.loading" :labels="{checked: strings.enabled, unchecked: strings.disabled}" :width="80" :height="25" color="#008ec2" _v-018981f2=""></toggle-button>\n </div>\n\n </div>\n <div class="field columns " _v-018981f2="">\n <label class="label column has-text-grey-dark no-padding-right " _v-018981f2="">\n {{strings.size_title}}\n <p class="is-italic has-text-weight-normal" _v-018981f2="">\n {{strings.size_desc}}\n </p>\n </label>\n\n <div class="column is-6 " _v-018981f2="">\n <div class="columns" _v-018981f2="">\n <div class="field column is-narrow has-addons" _v-018981f2="">\n <p class="control" _v-018981f2="">\n <a class="button is-small is-static" _v-018981f2="">\n {{strings.width_field}}\n </a>\n </p>\n <p class="control " _v-018981f2="">\n <input v-model="widthStatus" class="input is-small" type="number" min="100" max="10000" _v-018981f2="">\n </p>\n </div>\n <div class="field column is-small has-addons" _v-018981f2="">\n <p class="control" _v-018981f2="">\n <a class="button is-small is-static" _v-018981f2="">\n {{strings.height_field}}\n </a>\n </p>\n <p class="control " _v-018981f2="">\n <input v-model="heightStatus" class="input is-small" type="number" min="100" max="10000" _v-018981f2="">\n </p>\n </div>\n </div>\n </div>\n </div>\n <div class="field is-fullwidth columns " _v-018981f2="">\n <div class="column is-left" _v-018981f2="">\n <button @click="saveChanges()" class="button is-success is-small " :class="this.$store.state.loading ? \'is-loading\' : \'\' " :disabled="!showSave" _v-018981f2="">\n {{strings.save_changes}}\n </button>\n </div>\n </div>\n\n </div>\n'},function(t,e,n){var o,i;n(80),o=n(82),i=n(88),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(81);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(83),i=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:"exclusions",components:{FilterControl:i.default},data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,new_data:{}}},mounted:function(){},methods:{},computed:{site_settings:function(){return this.$store.state.site_settings}}}},function(t,e,n){var o,i;n(84),o=n(86),i=n(87),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(85);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(2);!function(t){t&&t.__esModule}(o);e.default={name:"filter-control",props:["type"],data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showSave:!1,selected_filter:"filename",selected_value:"",filter_operator:optimoleDashboardApp.strings.options_strings.filter_operator_contains,FILTER_TYPES:{EXT:"extension",URL:"page_url",FILENAME:"filename"}}},mounted:function(){},methods:{saveRule:function(){var t={};t[this.type]={},t[this.type][this.selected_filter]={},t[this.type][this.selected_filter][this.selected_value]=!0,this.selected_value.length<3||this.$store.dispatch("saveSettings",{settings:{filters:t}})},removeRule:function(t,e){var n={};n[this.type]={},n[this.type][t]={},n[this.type][t][e]="false",this.$store.dispatch("saveSettings",{settings:{filters:n}})},changeFilterType:function(t){this.selected_value="",t.target.value===this.FILTER_TYPES.EXT&&(this.selected_value="svg",this.filter_operator=this.strings.filter_operator_is),t.target.value===this.FILTER_TYPES.URL&&(this.filter_operator=this.strings.filter_operator_contains),t.target.value===this.FILTER_TYPES.FILENAME&&(this.filter_operator=this.strings.filter_operator_contains),this.selected_filter=t.target.value},getFilterOperator:function(){return this.filter_operator}},computed:{filters:function(){return this.$store.state.site_settings.filters[this.type]}}}},function(t,e){t.exports='\n <div :id="\'filter-type-\'+type" _v-2be63146="">\n <div class="field " _v-2be63146="">\n <label class="label column has-text-grey-dark" _v-2be63146="">\n <span v-if="type===\'lazyload\'" _v-2be63146="">{{strings.exclude_title_lazyload}}</span>\n <span v-if="type===\'optimize\'" _v-2be63146="">{{strings.exclude_title_optimize}}</span>\n </label>\n </div>\n <div class="field columns" _v-2be63146="">\n <div class="column is-paddingless is-full " _v-2be63146="">\n <div class="list" _v-2be63146="">\n <div class="list-item exclusion-filter" v-for="(item, index) in filters[this.FILTER_TYPES.EXT]" _v-2be63146="">\n <div class="control" _v-2be63146="">\n <div class="tags is-centered has-addons" _v-2be63146="">\n <a class="tag is-marginless is-link has-text-left" _v-2be63146=""><i _v-2be63146="">{{strings.exclude_ext_desc}}</i>\n <strong _v-2be63146="">{{index}}</strong></a>\n <a class="tag is-marginless is-delete" @click="removeRule(FILTER_TYPES.EXT,index)" _v-2be63146=""></a>\n </div>\n </div>\n </div>\n <div class="list-item exclusion-filter" v-for="(item, index) in filters[this.FILTER_TYPES.URL]" _v-2be63146="">\n <div class="control" _v-2be63146="">\n <div class="tags is-centered has-addons" _v-2be63146="">\n <a class="tag is-marginless is-link has-text-left" _v-2be63146=""><i _v-2be63146="">{{strings.exclude_url_desc}}</i>\n <strong _v-2be63146="">{{index}}</strong></a>\n <a class="tag is-marginless is-delete" @click="removeRule(FILTER_TYPES.URL,index)" _v-2be63146=""></a>\n </div>\n </div>\n </div>\n <div class="list-item exclusion-filter" v-for="(item, index) in filters[this.FILTER_TYPES.FILENAME]" _v-2be63146="">\n <div class="control" _v-2be63146="">\n <div class="tags is-centered has-addons" _v-2be63146="">\n <a class="tag is-marginless is-link has-text-left" _v-2be63146=""><i _v-2be63146="">{{strings.exclude_filename_desc}}</i>\n <strong _v-2be63146="">{{index}}</strong></a>\n <a class="tag is-marginless is-delete" @click="removeRule(FILTER_TYPES.FILENAME,index)" _v-2be63146=""></a>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="field columns" _v-2be63146="">\n <div class="field has-addons column has-addons-centered" _v-2be63146="">\n <p class="control " _v-2be63146="">\n <span class="select is-small" _v-2be63146="">\n <select @change="changeFilterType($event)" _v-2be63146="">\n <option :value="FILTER_TYPES.FILENAME" _v-2be63146="">{{strings.filter_filename}}</option>\n <option :value="FILTER_TYPES.EXT" _v-2be63146="">{{strings.filter_ext}}</option>\n <option :value="FILTER_TYPES.URL" _v-2be63146="">{{strings.filter_url}}</option>\n </select>\n </span>\n </p>\n <p class="control" _v-2be63146="">\n <a class="button is-small is-static" _v-2be63146="">\n {{getFilterOperator()}}\n </a>\n </p>\n <p class="control" _v-2be63146="">\n <span v-if="this.selected_filter===this.FILTER_TYPES.EXT" class="select is-small" _v-2be63146="">\n <select v-model="selected_value" _v-2be63146="">\n <option value="svg" _v-2be63146="">.SVG</option>\n <option value="jpg" _v-2be63146="">.JPG</option>\n <option value="png" _v-2be63146="">.PNG</option>\n </select>\n </span>\n <input v-else="" v-model="selected_value" class="input is-small" type="text" placeholder="word" _v-2be63146="">\n </p>\n <p class="control" _v-2be63146="">\n <a class="button is-primary is-small" :class="this.$store.state.loading ? \'is-loading\' : \'\' " @click="saveRule()" _v-2be63146="">\n {{strings.add_filter}}\n </a>\n </p>\n </div>\n </div>\n <p class="has-text-centered " v-if="this.selected_filter === FILTER_TYPES.URL" _v-2be63146="">\n <i _v-2be63146="">For homepage use <strong _v-2be63146="">home</strong> keyword.</i>\n </p>\n </div>\n'},function(t,e){t.exports='\n <div :class="{ \'saving--option\' : this.$store.state.loading }" _v-f5e043ba="">\n <div id="filters-list" _v-f5e043ba="">\n <div class="columns " _v-f5e043ba="">\n <filter-control :type="\'optimize\'" _v-f5e043ba=""></filter-control>\n </div>\n\t <hr _v-f5e043ba="">\n <div class="columns " v-if="this.$store.state.site_settings.lazyload === \'enabled\'" _v-f5e043ba="">\n <filter-control :type="\'lazyload\'" _v-f5e043ba=""></filter-control>\n </div>\n </div>\n\n </div>\n'},function(t,e,n){var o,i;n(90),o=n(92),i=n(93),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(91);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"lazyload",data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showSave:!1,new_data:{}}},mounted:function(){},methods:{saveChanges:function(){this.$store.dispatch("saveSettings",{settings:this.new_data})}},computed:{site_settings:function(){return this.$store.state.site_settings},lazyloadPlaceholder:{set:function(t){this.showSave=!0,this.new_data.lazyload_placeholder=t?"enabled":"disabled"},get:function(){return!("disabled"===this.site_settings.lazyload_placeholder)}}}}},function(t,e){t.exports='\n <div :class="{ \'saving--option\' : this.$store.state.loading }" _v-2356e1d0="">\n <div class="field columns" _v-2356e1d0="">\n <label class="label column has-text-grey-dark" _v-2356e1d0="">\n {{strings.enable_lazyload_placeholder_title}}\n <p class="is-italic has-text-weight-normal" _v-2356e1d0="">\n {{strings.enable_lazyload_placeholder_desc}}\n </p>\n </label>\n <div class="column is-3" _v-2356e1d0="">\n <toggle-button :class="\'has-text-dark\'" v-model="lazyloadPlaceholder" :disabled="this.$store.state.loading" :labels="{checked: strings.enabled, unchecked: strings.disabled}" :width="80" :height="25" color="#008ec2" _v-2356e1d0=""></toggle-button>\n </div>\n\n </div>\n <div class="field is-fullwidth columns " _v-2356e1d0="">\n <div class="column is-left" _v-2356e1d0="">\n <button @click="saveChanges()" class="button is-success is-small " :class="this.$store.state.loading ? \'is-loading\' : \'\' " :disabled="!showSave" _v-2356e1d0="">\n {{strings.save_changes}}\n </button>\n </div>\n </div>\n\n </div>\n'},function(t,e){t.exports='\n <div class="columns" _v-5187a250="">\n <aside id="optml-settings-menu" class="menu column is-2-fullhd is-3-desktop is-3-tablet is-hidden-mobile" _v-5187a250="">\n <ul class="menu-list optml-settings-submenu is-marginless" _v-5187a250="">\n <li _v-5187a250=""><a @click="changeTab(\'general\')" href="#" :class="tab === \'general\' ? \'is-active\' : \'\'" :title="all_strings.general_settings_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.general_settings_menu_item}}</a>\n </li>\n <li :class="isDisabled ? \'is-menu-disabled\' : \'\' " _v-5187a250=""><a @click="ToggleAdvanced()" href="#" title="General settings" _v-5187a250=""><span _v-5187a250="">{{all_strings.advanced_settings_menu_item}}</span>\n <span class=" dashicons advanced-link " :class="advancedOpen ? \'dashicons-arrow-down-alt2\' : \'dashicons-arrow-right-alt2\'" _v-5187a250=""></span>\n </a>\n <ul class="menu-list optml-settings-submenu is-marginless " :class=" ! advancedOpen ? \'is-hidden\' : \'\' " _v-5187a250="">\n <li _v-5187a250=""><a @click="changeTab(\'compression\')" href="#" :class="tab === \'compression\' ? \'is-active\' : \'\'" :title="all_strings.settings_compression_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.settings_compression_menu_item}}</a>\n </li>\n <li _v-5187a250=""><a @click="changeTab(\'resize\')" href="#" :class="tab === \'resize\' ? \'is-active\' : \'\'" :title="all_strings.settings_resize_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.settings_resize_menu_item}}</a>\n </li>\n <li v-if="this.$store.state.site_settings.lazyload===\'enabled\'" _v-5187a250=""><a @click="changeTab(\'lazyload\')" href="#" :class="tab === \'lazyload\' ? \'is-active\' : \'\'" :title="all_strings.lazyload_settings_menu_item+\' \'+all_strings.lazyload_settings_menu_item" _v-5187a250="">{{all_strings.lazyload_settings_menu_item}}</a>\n </li>\n <li _v-5187a250=""><a href="#" @click="changeTab(\'exclusions\')" :class="tab === \'exclusions\' ? \'is-active\' : \'\'" :title="all_strings.settings_exclusions_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.settings_exclusions_menu_item}}</a>\n </li>\n <li _v-5187a250=""><a @click="changeTab(\'watermark\')" href="#" :class="tab === \'watermark\' ? \'is-active\' : \'\'" :title="all_strings.watermarks_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.watermarks_menu_item}}\n <span class=" optml-beta is-normal tag is-warning" _v-5187a250="">Beta</span></a></li>\n </ul>\n </li>\n </ul>\n </aside>\n <div :class="[{ \'saving--option\' : this.$store.state.loading, \'is-tab-disabled\':isDisabled},\'is-tab-\'+tab] " class=" column" _v-5187a250="">\n <div class="subtab-content" _v-5187a250="">\n <general v-if="tab === \'general\' " @update-status="updateGlobalState" _v-5187a250=""></general>\n <compression v-if="tab === \'compression\' " _v-5187a250=""></compression>\n <watermarks v-if="tab ===\'watermark\'" _v-5187a250=""></watermarks>\n <resize v-if="tab ===\'resize\'" _v-5187a250=""></resize>\n <lazyload v-if="tab ===\'lazyload\'" _v-5187a250=""></lazyload>\n <exclusions v-if="tab ===\'exclusions\'" _v-5187a250=""></exclusions>\n </div>\n </div>\n </div>\n'},function(t,e){t.exports='\n <div class="columns is-desktop">\n\n <div class="column ">\n <div class="card">\n <app-header></app-header>\n <div class="card-content">\n <div class="content">\n <connect-layout v-if="!this.$store.state.connected"></connect-layout>\n\n <transition name="slide-fade">\n <div v-if="this.$store.state.connected && ! this.$store.state.is_loaded" id="optml-loader">\n <div class="columns">\n <div class="column">\n\n <transition name="slide-fade">\n <h4 class="has-text-centered">{{this.getProgressMessage()}}</h4>\n </transition>\n </div>\n </div>\n <div class="columns">\n <div class=" column is-vertical-center ">\n <progress id="optml-progress-bar" class="progress is-medium is-info"\n :class="\'optml-progres-\'+(Math.floor(this.loading_percent/10))"\n max="100"></progress>\n </div>\n </div>\n <iframe :src="home" style="opacity:0;" ></iframe>\n </div>\n </transition>\n <transition name="fade" mode="out-in">\n <div v-if="this.$store.state.connected && this.$store.state.is_loaded">\n <div class="tabs is-left is-boxed is-medium">\n <ul class="is-marginless optml-tabs">\n <li :class="tab === \'dashboard\' ? \'is-active\' : \'\'">\n <a @click="changeTab(\'dashboard\')" class="is-size-6-mobile">\n <span class="icon is-size-6-mobile is-size-6-tablet dashicons dashicons-admin-home"></span>\n <span class="is-size-6-mobile is-size-6-touch ">{{strings.dashboard_menu_item}}</span>\n </a>\n </li>\n <li :class="tab === \'conflicts\' ? \'is-active\' : \'\'" v-if="conflictCount > 0">\n <a @click="changeTab(\'conflicts\')" class="is-size-6-mobile">\n <span class="icon is-size-6-mobile is-size-6-tablet dashicons dashicons-warning"></span>\n <span class="is-size-6-mobile is-size-6-touch">{{strings.conflicts_menu_item}}</span> \n <span class="tag is-rounded is-danger">{{conflictCount}}</span>\n </a>\n </li>\n <li :class="tab === \'settings\' ? \'is-active\' : \'\'">\n <a @click="changeTab(\'settings\')" class="is-size-6-mobile ">\n <span class="icon is-size-6-mobile is-size-6-tablet dashicons dashicons-admin-settings"></span>\n <span class="is-size-6-mobile is-size-6-touch">{{strings.settings_menu_item}}</span>\n </a>\n </li>\n\n </ul>\n </div>\n\n <div class="is-tab" v-if="tab === \'dashboard\' "\n :class="remove_images ? \'no-images\' : \'\' ">\n <div class="notification is-success" v-if="strings.notice_just_activated.length > 0"\n v-html="strings.notice_just_activated"></div>\n <api-key-form></api-key-form>\n <cdn-details v-if="this.$store.state.userData"></cdn-details>\n <hr/>\n <last-images :status="fetchStatus" v-if="! remove_images"></last-images>\n </div>\n <div class="is-tab" v-if=" tab === \'settings\'">\n <options></options>\n </div>\n <div class="is-tab" v-if=" tab === \'conflicts\'">\n <conflicts></conflicts>\n </div>\n </div>\n </transition>\n\n </div>\n </div>\n\n <div class="level-right">\n <p class="level-item"><a href="https://optimole.com" target="_blank">Optimole\n v{{strings.version}}</a></p>\n <p class="level-item"><a href="https://optimole.com/terms/"\n target="_blank">{{strings.terms_menu}}</a></p>\n <p class="level-item"><a href="https://optimole.com/privacy-policy/" target="_blank">{{strings.privacy_menu}}</a>\n </p>\n <p class="level-item"><a :href="\'https://speedtest.optimole.com/?url=\' + home " target="_blank">{{strings.testdrive_menu}}</a>\n </p>\n </div>\n </div>\n </div>\n <div v-if="this.$store.state.connected && this.$store.state.userData.plan === \'free\' "\n class="column is-narrow is-hidden-desktop-only is-hidden-tablet-only is-hidden-mobile">\n <div class="card optml-upgrade">\n <div class="card-header">\n <h3 class="is-size-5 card-header-title"><span class="dashicons dashicons-chart-line"></span>\n {{strings.upgrade.title}}</h3>\n </div>\n <div class="card-content">\n <ul>\n <li><span class="dashicons dashicons-yes"></span>{{strings.upgrade.reason_1}}</li>\n <li><span class="dashicons dashicons-yes"></span>{{strings.upgrade.reason_2}}</li>\n <li><span class="dashicons dashicons-yes"></span>{{strings.upgrade.reason_3}}</li>\n <li><span class="dashicons dashicons-yes"></span>{{strings.upgrade.reason_4}}</li>\n </ul>\n </div>\n <div class="card-footer ">\n <div class="card-footer-item">\n <a href="https://optimole.com#pricing" target="_blank"\n class="button is-centered is-small is-success"><span\n class="dashicons dashicons-external"></span>{{strings.upgrade.cta}}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n'},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),a=o(i),r=n(97),s=o(r),l=n(6),p=o(l),c=n(99),d=o(c),m=n(100),u=o(m);a.default.use(s.default),a.default.use(p.default);var f=new s.default.Store({strict:!0,state:{isConnecting:!1,loading:!1,site_settings:optimoleDashboardApp.site_settings,connected:"yes"===optimoleDashboardApp.connection_status,is_loaded:"yes"===optimoleDashboardApp.connection_status,apiKey:optimoleDashboardApp.api_key?optimoleDashboardApp.api_key:"",apiKeyValidity:!0,connectError:"",sample_rate:{},apiError:!1,userData:optimoleDashboardApp.user_data?optimoleDashboardApp.user_data:null,optimizedImages:[],watermarks:[],conflicts:[]},mutations:d.default,actions:u.default});e.default=f},function(t,e,n){"use strict";function o(t){z&&(t._devtoolHook=z,z.emit("vuex:init",t),z.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){z.emit("vuex:mutation",t,e)}))}function i(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function a(t){return null!==t&&"object"==typeof t}function r(t){return t&&"function"==typeof t.then}function s(t,e,n){if(e.update(n),n.modules)for(var o in n.modules){if(!e.getChild(o))return;s(t.concat(o),e.getChild(o),n.modules[o])}}function l(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function p(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;d(t,n,[],t._modules.root,!0),c(t,n,e)}function c(t,e,n){var o=t._vm;t.getters={};var a=t._wrappedGetters,r={};i(a,function(e,n){r[n]=function(){return e(t)},Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var s=$.config.silent;$.config.silent=!0,t._vm=new $({data:{$$state:e},computed:r}),$.config.silent=s,t.strict&&v(t),o&&(n&&t._withCommit(function(){o._data.$$state=null}),$.nextTick(function(){return o.$destroy()}))}function d(t,e,n,o,i){var a=!n.length,r=t._modules.getNamespace(n);if(o.namespaced&&(t._modulesNamespaceMap[r]=o),!a&&!i){var s=g(e,n.slice(0,-1)),l=n[n.length-1];t._withCommit(function(){$.set(s,l,o.state)})}var p=o.context=m(t,r,n);o.forEachMutation(function(e,n){f(t,r+n,e,p)}),o.forEachAction(function(e,n){var o=e.root?n:r+n,i=e.handler||e;h(t,o,i,p)}),o.forEachGetter(function(e,n){b(t,r+n,e,p)}),o.forEachChild(function(o,a){d(t,e,n.concat(a),o,i)})}function m(t,e,n){var o=""===e,i={dispatch:o?t.dispatch:function(n,o,i){var a=x(n,o,i),r=a.payload,s=a.options,l=a.type;return s&&s.root||(l=e+l),t.dispatch(l,r)},commit:o?t.commit:function(n,o,i){var a=x(n,o,i),r=a.payload,s=a.options,l=a.type;s&&s.root||(l=e+l),t.commit(l,r,s)}};return Object.defineProperties(i,{getters:{get:o?function(){return t.getters}:function(){return u(t,e)}},state:{get:function(){return g(t.state,n)}}}),i}function u(t,e){var n={},o=e.length;return Object.keys(t.getters).forEach(function(i){if(i.slice(0,o)===e){var a=i.slice(o);Object.defineProperty(n,a,{get:function(){return t.getters[i]},enumerable:!0})}}),n}function f(t,e,n,o){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){n.call(t,o.state,e)})}function h(t,e,n,o){(t._actions[e]||(t._actions[e]=[])).push(function(e,i){var a=n.call(t,{dispatch:o.dispatch,commit:o.commit,getters:o.getters,state:o.state,rootGetters:t.getters,rootState:t.state},e,i);return r(a)||(a=Promise.resolve(a)),t._devtoolHook?a.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):a})}function b(t,e,n,o){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return n(o.state,o.getters,t.state,t.getters)})}function v(t){t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}function g(t,e){return e.length?e.reduce(function(t,e){return t[e]},t):t}function x(t,e,n){return a(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function y(t){$&&t===$||($=t,C($))}function w(t){return Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}})}function k(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function _(t,e,n){return t._modulesNamespaceMap[n]}Object.defineProperty(e,"__esModule",{value:!0}),n.d(e,"Store",function(){return j}),n.d(e,"install",function(){return y}),n.d(e,"mapState",function(){return T}),n.d(e,"mapMutations",function(){return D}),n.d(e,"mapGetters",function(){return P}),n.d(e,"mapActions",function(){return R}),n.d(e,"createNamespacedHelpers",function(){return M});/**
|
22 |
* vuex v2.5.0
|
23 |
* (c) 2017 Evan You
|
24 |
* @license MIT
|
8 |
* https://github.com/pagekit/vue-resource
|
9 |
* Released under the MIT License.
|
10 |
*/
|
11 |
+
var st=2;o.reject=function(t){return new o(function(e,n){n(t)})},o.resolve=function(t){return new o(function(e,n){e(t)})},o.all=function(t){return new o(function(e,n){var i=0,a=[];0===t.length&&e(a);for(var r=0;r<t.length;r+=1)o.resolve(t[r]).then(function(n){return function(o){a[n]=o,(i+=1)===t.length&&e(a)}}(r),n)})},o.race=function(t){return new o(function(e,n){for(var i=0;i<t.length;i+=1)o.resolve(t[i]).then(e,n)})};var lt=o.prototype;lt.resolve=function(t){var e=this;if(e.state===st){if(t===e)throw new TypeError("Promise settled with itself.");var n=!1;try{var o=t&&t.then;if(null!==t&&"object"==typeof t&&"function"==typeof o)return void o.call(t,function(t){n||e.resolve(t),n=!0},function(t){n||e.reject(t),n=!0})}catch(t){return void(n||e.reject(t))}e.state=0,e.value=t,e.notify()}},lt.reject=function(t){var e=this;if(e.state===st){if(t===e)throw new TypeError("Promise settled with itself.");e.state=1,e.value=t,e.notify()}},lt.notify=function(){var t=this;l(function(){if(t.state!==st)for(;t.deferred.length;){var e=t.deferred.shift(),n=e[0],o=e[1],i=e[2],a=e[3];try{0===t.state?i("function"==typeof n?n.call(void 0,t.value):t.value):1===t.state&&("function"==typeof o?i(o.call(void 0,t.value)):a(t.value))}catch(t){a(t)}}})},lt.then=function(t,e){var n=this;return new o(function(o,i){n.deferred.push([t,e,o,i]),n.notify()})},lt.catch=function(t){return this.then(void 0,t)},"undefined"==typeof Promise&&(window.Promise=o),i.all=function(t,e){return new i(Promise.all(t),e)},i.resolve=function(t,e){return new i(Promise.resolve(t),e)},i.reject=function(t,e){return new i(Promise.reject(t),e)},i.race=function(t,e){return new i(Promise.race(t),e)};var pt=i.prototype;pt.bind=function(t){return this.context=t,this},pt.then=function(t,e){return t&&t.bind&&this.context&&(t=t.bind(this.context)),e&&e.bind&&this.context&&(e=e.bind(this.context)),new i(this.promise.then(t,e),this.context)},pt.catch=function(t){return t&&t.bind&&this.context&&(t=t.bind(this.context)),new i(this.promise.catch(t),this.context)},pt.finally=function(t){return this.then(function(e){return t.call(this),e},function(e){return t.call(this),Promise.reject(e)})};var ct,dt={},mt=dt.hasOwnProperty,ut=[],ft=ut.slice,ht=!1,bt="undefined"!=typeof window,vt=Array.isArray,gt=Object.assign||C;M.options={url:"",root:null,params:{}},M.transform={template:R,query:S,root:O},M.transforms=["template","query","root"],M.params=function(t){var e=[],n=encodeURIComponent;return e.add=function(t,e){f(e)&&(e=e()),null===e&&(e=""),this.push(n(t)+"="+n(e))},L(e,t),e.join("&").replace(/%20/g,"+")},M.parse=function(t){var e=document.createElement("a");return document.documentMode&&(e.href=t,t=e.href),e.href=t,{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",port:e.port,host:e.host,hostname:e.hostname,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):""}};var xt=bt&&"withCredentials"in new XMLHttpRequest,yt=function(t){var e=this;this.map={},w(t,function(t,n){return e.append(n,t)})};yt.prototype.has=function(t){return null!==Q(this.map,t)},yt.prototype.get=function(t){var e=this.map[Q(this.map,t)];return e?e.join():null},yt.prototype.getAll=function(t){return this.map[Q(this.map,t)]||[]},yt.prototype.set=function(t,e){this.map[tt(Q(this.map,t)||t)]=[p(e)]},yt.prototype.append=function(t,e){var n=this.map[Q(this.map,t)];n?n.push(p(e)):this.set(t,e)},yt.prototype.delete=function(t){delete this.map[Q(this.map,t)]},yt.prototype.deleteAll=function(){this.map={}},yt.prototype.forEach=function(t,e){var n=this;w(this.map,function(o,i){w(o,function(o){return t.call(e,o,i,n)})})};var wt=function(t,e){var n=e.url,o=e.headers,i=e.status,a=e.statusText;this.url=n,this.ok=i>=200&&i<300,this.status=i||0,this.statusText=a||"",this.headers=new yt(o),this.body=t,u(t)?this.bodyText=t:v(t)&&(this.bodyBlob=t,nt(t)&&(this.bodyText=et(t)))};wt.prototype.blob=function(){return x(this.bodyBlob)},wt.prototype.text=function(){return x(this.bodyText)},wt.prototype.json=function(){return x(this.text(),function(t){return JSON.parse(t)})},Object.defineProperty(wt.prototype,"data",{get:function(){return this.body},set:function(t){this.body=t}});var kt=function(t){this.body=null,this.params={},gt(this,t,{method:m(t.method||"GET")}),this.headers instanceof yt||(this.headers=new yt(this.headers))};kt.prototype.getUrl=function(){return M(this)},kt.prototype.getBody=function(){return this.body},kt.prototype.respondWith=function(t,e){return new wt(t,gt(e||{},{url:this.getUrl()}))};var _t={Accept:"application/json, text/plain, */*"},Ct={"Content-Type":"application/json;charset=utf-8"};ot.options={},ot.headers={put:Ct,post:Ct,patch:Ct,delete:Ct,common:_t,custom:{}},ot.interceptor={before:q,method:W,jsonp:V,json:U,form:B,header:K,cors:F},ot.interceptors=["before","method","jsonp","json","form","header","cors"],["get","delete","head","jsonp"].forEach(function(t){ot[t]=function(e,n){return this(gt(n||{},{url:e,method:t}))}}),["post","put","patch"].forEach(function(t){ot[t]=function(e,n,o){return this(gt(o||{},{url:e,method:t,body:n}))}}),it.actions={get:{method:"GET"},save:{method:"POST"},query:{method:"GET"},update:{method:"PUT"},remove:{method:"DELETE"},delete:{method:"DELETE"}},"undefined"!=typeof window&&window.Vue&&window.Vue.use(rt),e.default=rt},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}var i=n(2),a=o(i),r=n(11),s=o(r),l=n(96),p=o(l),c=n(101),d=o(c),m=n(102),u=o(m);a.default.use(u.default),a.default.use(d.default),window.addEventListener("load",function(){new a.default({el:"#optimole-app",store:p.default,components:{App:s.default}})})},function(t,e,n){(function(t){function o(t,e){this._id=t,this._clearFn=e}var i=void 0!==t&&t||"undefined"!=typeof self&&self||window,a=Function.prototype.apply;e.setTimeout=function(){return new o(a.call(setTimeout,i,arguments),clearTimeout)},e.setInterval=function(){return new o(a.call(setInterval,i,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(i,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(9),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(e,n(3))},function(t,e,n){(function(t,e){!function(t,n){"use strict";function o(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return p[l]=o,s(l),l++}function i(t){delete p[t]}function a(t){var e=t.callback,o=t.args;switch(o.length){case 0:e();break;case 1:e(o[0]);break;case 2:e(o[0],o[1]);break;case 3:e(o[0],o[1],o[2]);break;default:e.apply(n,o)}}function r(t){if(c)setTimeout(r,0,t);else{var e=p[t];if(e){c=!0;try{a(e)}finally{i(t),c=!1}}}}if(!t.setImmediate){var s,l=1,p={},c=!1,d=t.document,m=Object.getPrototypeOf&&Object.getPrototypeOf(t);m=m&&m.setTimeout?m:t,"[object process]"==={}.toString.call(t.process)?function(){s=function(t){e.nextTick(function(){r(t)})}}():function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?function(){var e="setImmediate$"+Math.random()+"$",n=function(n){n.source===t&&"string"==typeof n.data&&0===n.data.indexOf(e)&&r(+n.data.slice(e.length))};t.addEventListener?t.addEventListener("message",n,!1):t.attachEvent("onmessage",n),s=function(n){t.postMessage(e+n,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){r(t.data)},s=function(e){t.port2.postMessage(e)}}():d&&"onreadystatechange"in d.createElement("script")?function(){var t=d.documentElement;s=function(e){var n=d.createElement("script");n.onreadystatechange=function(){r(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():function(){s=function(t){setTimeout(r,0,t)}}(),m.setImmediate=o,m.clearImmediate=i}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n(3),n(10))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(t){if(c===setTimeout)return setTimeout(t,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(t,0);try{return c(t,0)}catch(e){try{return c.call(null,t,0)}catch(e){return c.call(this,t,0)}}}function a(t){if(d===clearTimeout)return clearTimeout(t);if((d===o||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(t);try{return d(t)}catch(e){try{return d.call(null,t)}catch(e){return d.call(this,t)}}}function r(){h&&u&&(h=!1,u.length?f=u.concat(f):b=-1,f.length&&s())}function s(){if(!h){var t=i(r);h=!0;for(var e=f.length;e;){for(u=f,f=[];++b<e;)u&&u[b].run();b=-1,e=f.length}u=null,h=!1,a(t)}}function l(t,e){this.fun=t,this.array=e}function p(){}var c,d,m=t.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:n}catch(t){c=n}try{d="function"==typeof clearTimeout?clearTimeout:o}catch(t){d=o}}();var u,f=[],h=!1,b=-1;m.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];f.push(new l(t,e)),1!==f.length||h||i(s)},l.prototype.run=function(){this.fun.apply(null,this.array)},m.title="browser",m.browser=!0,m.env={},m.argv=[],m.version="",m.versions={},m.on=p,m.addListener=p,m.once=p,m.off=p,m.removeListener=p,m.removeAllListeners=p,m.emit=p,m.prependListener=p,m.prependOnceListener=p,m.listeners=function(t){return[]},m.binding=function(t){throw new Error("process.binding is not supported")},m.cwd=function(){return"/"},m.chdir=function(t){throw new Error("process.chdir is not supported")},m.umask=function(){return 0}},function(t,e,n){var o,i;n(12),o=n(14),i=n(95),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(13);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,'#optimole-app {\n padding: 0 30px 0 20px;\n /*! bulma.io v0.7.4 | MIT License | github.com/jgthms/bulma */\n /*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ }\n\n@keyframes spinAround {\n from {\n transform: rotate(0deg); }\n to {\n transform: rotate(359deg); } }\n #optimole-app .delete, #optimole-app .modal-close, #optimole-app .is-unselectable, #optimole-app .button, #optimole-app .file, #optimole-app .breadcrumb, #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis, #optimole-app .tabs {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #optimole-app .select:not(.is-multiple):not(.is-loading)::after, #optimole-app .navbar-link:not(.is-arrowless)::after {\n border: 3px solid transparent;\n border-radius: 2px;\n border-right: 0;\n border-top: 0;\n content: " ";\n display: block;\n height: 0.625em;\n margin-top: -0.4375em;\n pointer-events: none;\n position: absolute;\n top: 50%;\n transform: rotate(-45deg);\n transform-origin: center;\n width: 0.625em; }\n #optimole-app .box:not(:last-child), #optimole-app .content:not(:last-child), #optimole-app .notification:not(:last-child), #optimole-app .progress:not(:last-child), #optimole-app .table:not(:last-child), #optimole-app .table-container:not(:last-child), #optimole-app .title:not(:last-child),\n #optimole-app .subtitle:not(:last-child), #optimole-app .block:not(:last-child), #optimole-app .highlight:not(:last-child), #optimole-app .breadcrumb:not(:last-child), #optimole-app .level:not(:last-child), #optimole-app .list:not(:last-child), #optimole-app .message:not(:last-child), #optimole-app .tabs:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .delete, #optimole-app .modal-close {\n -moz-appearance: none;\n -webkit-appearance: none;\n background-color: rgba(10, 10, 10, 0.2);\n border: none;\n border-radius: 290486px;\n cursor: pointer;\n pointer-events: auto;\n display: inline-block;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n font-size: 0;\n height: 20px;\n max-height: 20px;\n max-width: 20px;\n min-height: 20px;\n min-width: 20px;\n outline: none;\n position: relative;\n vertical-align: top;\n width: 20px; }\n #optimole-app .delete::before, #optimole-app .modal-close::before, #optimole-app .delete::after, #optimole-app .modal-close::after {\n background-color: white;\n content: "";\n display: block;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform-origin: center center; }\n #optimole-app .delete::before, #optimole-app .modal-close::before {\n height: 2px;\n width: 50%; }\n #optimole-app .delete::after, #optimole-app .modal-close::after {\n height: 50%;\n width: 2px; }\n #optimole-app .delete:hover, #optimole-app .modal-close:hover, #optimole-app .delete:focus, #optimole-app .modal-close:focus {\n background-color: rgba(10, 10, 10, 0.3); }\n #optimole-app .delete:active, #optimole-app .modal-close:active {\n background-color: rgba(10, 10, 10, 0.4); }\n #optimole-app .is-small.delete, #optimole-app .is-small.modal-close {\n height: 16px;\n max-height: 16px;\n max-width: 16px;\n min-height: 16px;\n min-width: 16px;\n width: 16px; }\n #optimole-app .is-medium.delete, #optimole-app .is-medium.modal-close {\n height: 24px;\n max-height: 24px;\n max-width: 24px;\n min-height: 24px;\n min-width: 24px;\n width: 24px; }\n #optimole-app .is-large.delete, #optimole-app .is-large.modal-close {\n height: 32px;\n max-height: 32px;\n max-width: 32px;\n min-height: 32px;\n min-width: 32px;\n width: 32px; }\n #optimole-app .button.is-loading::after, #optimole-app .select.is-loading::after, #optimole-app .control.is-loading::after, #optimole-app .loader {\n animation: spinAround 500ms infinite linear;\n border: 2px solid #dbdbdb;\n border-radius: 290486px;\n border-right-color: transparent;\n border-top-color: transparent;\n content: "";\n display: block;\n height: 1em;\n position: relative;\n width: 1em; }\n #optimole-app .is-overlay, #optimole-app .image.is-square img,\n #optimole-app .image.is-square .has-ratio, #optimole-app .image.is-1by1 img,\n #optimole-app .image.is-1by1 .has-ratio, #optimole-app .image.is-5by4 img,\n #optimole-app .image.is-5by4 .has-ratio, #optimole-app .image.is-4by3 img,\n #optimole-app .image.is-4by3 .has-ratio, #optimole-app .image.is-3by2 img,\n #optimole-app .image.is-3by2 .has-ratio, #optimole-app .image.is-5by3 img,\n #optimole-app .image.is-5by3 .has-ratio, #optimole-app .image.is-16by9 img,\n #optimole-app .image.is-16by9 .has-ratio, #optimole-app .image.is-2by1 img,\n #optimole-app .image.is-2by1 .has-ratio, #optimole-app .image.is-3by1 img,\n #optimole-app .image.is-3by1 .has-ratio, #optimole-app .image.is-4by5 img,\n #optimole-app .image.is-4by5 .has-ratio, #optimole-app .image.is-3by4 img,\n #optimole-app .image.is-3by4 .has-ratio, #optimole-app .image.is-2by3 img,\n #optimole-app .image.is-2by3 .has-ratio, #optimole-app .image.is-3by5 img,\n #optimole-app .image.is-3by5 .has-ratio, #optimole-app .image.is-9by16 img,\n #optimole-app .image.is-9by16 .has-ratio, #optimole-app .image.is-1by2 img,\n #optimole-app .image.is-1by2 .has-ratio, #optimole-app .image.is-1by3 img,\n #optimole-app .image.is-1by3 .has-ratio, #optimole-app .modal, #optimole-app .modal-background, #optimole-app .hero-video {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0; }\n #optimole-app .button, #optimole-app .input,\n #optimole-app .textarea, #optimole-app .select select, #optimole-app .file-cta,\n #optimole-app .file-name, #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis {\n -moz-appearance: none;\n -webkit-appearance: none;\n -ms-flex-align: center;\n align-items: center;\n border: 1px solid transparent;\n border-radius: 4px;\n box-shadow: none;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 1rem;\n height: 2.25em;\n -ms-flex-pack: start;\n justify-content: flex-start;\n line-height: 1.5;\n padding-bottom: calc(0.375em - 1px);\n padding-left: calc(0.625em - 1px);\n padding-right: calc(0.625em - 1px);\n padding-top: calc(0.375em - 1px);\n position: relative;\n vertical-align: top; }\n #optimole-app .button:focus, #optimole-app .input:focus,\n #optimole-app .textarea:focus, #optimole-app .select select:focus, #optimole-app .file-cta:focus,\n #optimole-app .file-name:focus, #optimole-app .pagination-previous:focus,\n #optimole-app .pagination-next:focus,\n #optimole-app .pagination-link:focus,\n #optimole-app .pagination-ellipsis:focus, #optimole-app .is-focused.button, #optimole-app .is-focused.input,\n #optimole-app .is-focused.textarea, #optimole-app .select select.is-focused, #optimole-app .is-focused.file-cta,\n #optimole-app .is-focused.file-name, #optimole-app .is-focused.pagination-previous,\n #optimole-app .is-focused.pagination-next,\n #optimole-app .is-focused.pagination-link,\n #optimole-app .is-focused.pagination-ellipsis, #optimole-app .button:active, #optimole-app .input:active,\n #optimole-app .textarea:active, #optimole-app .select select:active, #optimole-app .file-cta:active,\n #optimole-app .file-name:active, #optimole-app .pagination-previous:active,\n #optimole-app .pagination-next:active,\n #optimole-app .pagination-link:active,\n #optimole-app .pagination-ellipsis:active, #optimole-app .is-active.button, #optimole-app .is-active.input,\n #optimole-app .is-active.textarea, #optimole-app .select select.is-active, #optimole-app .is-active.file-cta,\n #optimole-app .is-active.file-name, #optimole-app .is-active.pagination-previous,\n #optimole-app .is-active.pagination-next,\n #optimole-app .is-active.pagination-link,\n #optimole-app .is-active.pagination-ellipsis {\n outline: none; }\n #optimole-app .button[disabled], #optimole-app .input[disabled],\n #optimole-app .textarea[disabled], #optimole-app .select select[disabled], #optimole-app .file-cta[disabled],\n #optimole-app .file-name[disabled], #optimole-app .pagination-previous[disabled],\n #optimole-app .pagination-next[disabled],\n #optimole-app .pagination-link[disabled],\n #optimole-app .pagination-ellipsis[disabled],\n fieldset[disabled] #optimole-app .button,\n fieldset[disabled] #optimole-app .input,\n fieldset[disabled] #optimole-app .textarea,\n fieldset[disabled] #optimole-app .select select,\n fieldset[disabled] #optimole-app .file-cta,\n fieldset[disabled] #optimole-app .file-name,\n fieldset[disabled] #optimole-app .pagination-previous,\n fieldset[disabled] #optimole-app .pagination-next,\n fieldset[disabled] #optimole-app .pagination-link,\n fieldset[disabled] #optimole-app .pagination-ellipsis {\n cursor: not-allowed; }\n #optimole-app html,\n #optimole-app body,\n #optimole-app p,\n #optimole-app ol,\n #optimole-app ul,\n #optimole-app li,\n #optimole-app dl,\n #optimole-app dt,\n #optimole-app dd,\n #optimole-app blockquote,\n #optimole-app figure,\n #optimole-app fieldset,\n #optimole-app legend,\n #optimole-app textarea,\n #optimole-app pre,\n #optimole-app iframe,\n #optimole-app hr,\n #optimole-app h1,\n #optimole-app h2,\n #optimole-app h3,\n #optimole-app h4,\n #optimole-app h5,\n #optimole-app h6 {\n margin: 0;\n padding: 0; }\n #optimole-app h1,\n #optimole-app h2,\n #optimole-app h3,\n #optimole-app h4,\n #optimole-app h5,\n #optimole-app h6 {\n font-size: 100%;\n font-weight: normal; }\n #optimole-app ul {\n list-style: none; }\n #optimole-app button,\n #optimole-app input,\n #optimole-app select,\n #optimole-app textarea {\n margin: 0; }\n #optimole-app html {\n box-sizing: border-box; }\n #optimole-app *, #optimole-app *::before, #optimole-app *::after {\n box-sizing: inherit; }\n #optimole-app img,\n #optimole-app embed,\n #optimole-app iframe,\n #optimole-app object,\n #optimole-app video {\n height: auto;\n max-width: 100%; }\n #optimole-app audio {\n max-width: 100%; }\n #optimole-app iframe {\n border: 0; }\n #optimole-app table {\n border-collapse: collapse;\n border-spacing: 0; }\n #optimole-app td,\n #optimole-app th {\n padding: 0;\n text-align: left; }\n #optimole-app html {\n background-color: white;\n font-size: 16px;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n min-width: 300px;\n overflow-x: hidden;\n overflow-y: scroll;\n text-rendering: optimizeLegibility;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n text-size-adjust: 100%; }\n #optimole-app article,\n #optimole-app aside,\n #optimole-app figure,\n #optimole-app footer,\n #optimole-app header,\n #optimole-app hgroup,\n #optimole-app section {\n display: block; }\n #optimole-app body,\n #optimole-app button,\n #optimole-app input,\n #optimole-app select,\n #optimole-app textarea {\n font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }\n #optimole-app code,\n #optimole-app pre {\n -moz-osx-font-smoothing: auto;\n -webkit-font-smoothing: auto;\n font-family: monospace; }\n #optimole-app body {\n color: #4a4a4a;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5; }\n #optimole-app a {\n color: #3273dc;\n cursor: pointer;\n text-decoration: none; }\n #optimole-app a strong {\n color: currentColor; }\n #optimole-app a:hover {\n color: #363636; }\n #optimole-app code {\n background-color: whitesmoke;\n color: #ff3860;\n font-size: 0.875em;\n font-weight: normal;\n padding: 0.25em 0.5em 0.25em; }\n #optimole-app hr {\n background-color: whitesmoke;\n border: none;\n display: block;\n height: 2px;\n margin: 1.5rem 0; }\n #optimole-app img {\n height: auto;\n max-width: 100%; }\n #optimole-app input[type="checkbox"],\n #optimole-app input[type="radio"] {\n vertical-align: baseline; }\n #optimole-app small {\n font-size: 0.875em; }\n #optimole-app span {\n font-style: inherit;\n font-weight: inherit; }\n #optimole-app strong {\n color: #363636;\n font-weight: 700; }\n #optimole-app fieldset {\n border: none; }\n #optimole-app pre {\n -webkit-overflow-scrolling: touch;\n background-color: whitesmoke;\n color: #4a4a4a;\n font-size: 0.875em;\n overflow-x: auto;\n padding: 1.25rem 1.5rem;\n white-space: pre;\n word-wrap: normal; }\n #optimole-app pre code {\n background-color: transparent;\n color: currentColor;\n font-size: 1em;\n padding: 0; }\n #optimole-app table td,\n #optimole-app table th {\n text-align: left;\n vertical-align: top; }\n #optimole-app table th {\n color: #363636; }\n #optimole-app .is-clearfix::after {\n clear: both;\n content: " ";\n display: table; }\n #optimole-app .is-pulled-left {\n float: left !important; }\n #optimole-app .is-pulled-right {\n float: right !important; }\n #optimole-app .is-clipped {\n overflow: hidden !important; }\n #optimole-app .is-size-1 {\n font-size: 3rem !important; }\n #optimole-app .is-size-2 {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3 {\n font-size: 2rem !important; }\n #optimole-app .is-size-4 {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5 {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6 {\n font-size: 1rem !important; }\n #optimole-app .is-size-7 {\n font-size: 0.75rem !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-size-1-mobile {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-mobile {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-mobile {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-mobile {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-mobile {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-mobile {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-mobile {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-size-1-tablet {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-tablet {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-tablet {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-tablet {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-tablet {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-tablet {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-tablet {\n font-size: 0.75rem !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-size-1-touch {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-touch {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-touch {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-touch {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-touch {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-touch {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-touch {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-size-1-desktop {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-desktop {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-desktop {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-desktop {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-desktop {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-desktop {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-desktop {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-size-1-widescreen {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-widescreen {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-widescreen {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-widescreen {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-widescreen {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-widescreen {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-widescreen {\n font-size: 0.75rem !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-size-1-fullhd {\n font-size: 3rem !important; }\n #optimole-app .is-size-2-fullhd {\n font-size: 2.5rem !important; }\n #optimole-app .is-size-3-fullhd {\n font-size: 2rem !important; }\n #optimole-app .is-size-4-fullhd {\n font-size: 1.5rem !important; }\n #optimole-app .is-size-5-fullhd {\n font-size: 1.25rem !important; }\n #optimole-app .is-size-6-fullhd {\n font-size: 1rem !important; }\n #optimole-app .is-size-7-fullhd {\n font-size: 0.75rem !important; } }\n #optimole-app .has-text-centered {\n text-align: center !important; }\n #optimole-app .has-text-justified {\n text-align: justify !important; }\n #optimole-app .has-text-left {\n text-align: left !important; }\n #optimole-app .has-text-right {\n text-align: right !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-centered-mobile {\n text-align: center !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-centered-tablet {\n text-align: center !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-centered-tablet-only {\n text-align: center !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-centered-touch {\n text-align: center !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-centered-desktop {\n text-align: center !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-centered-desktop-only {\n text-align: center !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-centered-widescreen {\n text-align: center !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-centered-widescreen-only {\n text-align: center !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-centered-fullhd {\n text-align: center !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-justified-mobile {\n text-align: justify !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-justified-tablet {\n text-align: justify !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-justified-tablet-only {\n text-align: justify !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-justified-touch {\n text-align: justify !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-justified-desktop {\n text-align: justify !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-justified-desktop-only {\n text-align: justify !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-justified-widescreen {\n text-align: justify !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-justified-widescreen-only {\n text-align: justify !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-justified-fullhd {\n text-align: justify !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-left-mobile {\n text-align: left !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-left-tablet {\n text-align: left !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-left-tablet-only {\n text-align: left !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-left-touch {\n text-align: left !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-left-desktop {\n text-align: left !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-left-desktop-only {\n text-align: left !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-left-widescreen {\n text-align: left !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-left-widescreen-only {\n text-align: left !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-left-fullhd {\n text-align: left !important; } }\n @media screen and (max-width: 768px) {\n #optimole-app .has-text-right-mobile {\n text-align: right !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .has-text-right-tablet {\n text-align: right !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .has-text-right-tablet-only {\n text-align: right !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .has-text-right-touch {\n text-align: right !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .has-text-right-desktop {\n text-align: right !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .has-text-right-desktop-only {\n text-align: right !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .has-text-right-widescreen {\n text-align: right !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .has-text-right-widescreen-only {\n text-align: right !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .has-text-right-fullhd {\n text-align: right !important; } }\n #optimole-app .is-capitalized {\n text-transform: capitalize !important; }\n #optimole-app .is-lowercase {\n text-transform: lowercase !important; }\n #optimole-app .is-uppercase {\n text-transform: uppercase !important; }\n #optimole-app .is-italic {\n font-style: italic !important; }\n #optimole-app .has-text-white {\n color: white !important; }\n #optimole-app a.has-text-white:hover, #optimole-app a.has-text-white:focus {\n color: #e6e6e6 !important; }\n #optimole-app .has-background-white {\n background-color: white !important; }\n #optimole-app .has-text-black {\n color: #0a0a0a !important; }\n #optimole-app a.has-text-black:hover, #optimole-app a.has-text-black:focus {\n color: black !important; }\n #optimole-app .has-background-black {\n background-color: #0a0a0a !important; }\n #optimole-app .has-text-light {\n color: whitesmoke !important; }\n #optimole-app a.has-text-light:hover, #optimole-app a.has-text-light:focus {\n color: #dbdbdb !important; }\n #optimole-app .has-background-light {\n background-color: whitesmoke !important; }\n #optimole-app .has-text-dark {\n color: #363636 !important; }\n #optimole-app a.has-text-dark:hover, #optimole-app a.has-text-dark:focus {\n color: #1c1c1c !important; }\n #optimole-app .has-background-dark {\n background-color: #363636 !important; }\n #optimole-app .has-text-primary {\n color: #EF686B !important; }\n #optimole-app a.has-text-primary:hover, #optimole-app a.has-text-primary:focus {\n color: #ea3a3e !important; }\n #optimole-app .has-background-primary {\n background-color: #EF686B !important; }\n #optimole-app .has-text-link {\n color: #3273dc !important; }\n #optimole-app a.has-text-link:hover, #optimole-app a.has-text-link:focus {\n color: #205bbc !important; }\n #optimole-app .has-background-link {\n background-color: #3273dc !important; }\n #optimole-app .has-text-info {\n color: #5180C1 !important; }\n #optimole-app a.has-text-info:hover, #optimole-app a.has-text-info:focus {\n color: #3b67a4 !important; }\n #optimole-app .has-background-info {\n background-color: #5180C1 !important; }\n #optimole-app .has-text-success {\n color: #34a85e !important; }\n #optimole-app a.has-text-success:hover, #optimole-app a.has-text-success:focus {\n color: #288148 !important; }\n #optimole-app .has-background-success {\n background-color: #34a85e !important; }\n #optimole-app .has-text-warning {\n color: #ffdd57 !important; }\n #optimole-app a.has-text-warning:hover, #optimole-app a.has-text-warning:focus {\n color: #ffd324 !important; }\n #optimole-app .has-background-warning {\n background-color: #ffdd57 !important; }\n #optimole-app .has-text-danger {\n color: #D54222 !important; }\n #optimole-app a.has-text-danger:hover, #optimole-app a.has-text-danger:focus {\n color: #a9341b !important; }\n #optimole-app .has-background-danger {\n background-color: #D54222 !important; }\n #optimole-app .has-text-black-bis {\n color: #121212 !important; }\n #optimole-app .has-background-black-bis {\n background-color: #121212 !important; }\n #optimole-app .has-text-black-ter {\n color: #242424 !important; }\n #optimole-app .has-background-black-ter {\n background-color: #242424 !important; }\n #optimole-app .has-text-grey-darker {\n color: #363636 !important; }\n #optimole-app .has-background-grey-darker {\n background-color: #363636 !important; }\n #optimole-app .has-text-grey-dark {\n color: #4a4a4a !important; }\n #optimole-app .has-background-grey-dark {\n background-color: #4a4a4a !important; }\n #optimole-app .has-text-grey {\n color: #7a7a7a !important; }\n #optimole-app .has-background-grey {\n background-color: #7a7a7a !important; }\n #optimole-app .has-text-grey-light {\n color: #b5b5b5 !important; }\n #optimole-app .has-background-grey-light {\n background-color: #b5b5b5 !important; }\n #optimole-app .has-text-grey-lighter {\n color: #dbdbdb !important; }\n #optimole-app .has-background-grey-lighter {\n background-color: #dbdbdb !important; }\n #optimole-app .has-text-white-ter {\n color: whitesmoke !important; }\n #optimole-app .has-background-white-ter {\n background-color: whitesmoke !important; }\n #optimole-app .has-text-white-bis {\n color: #fafafa !important; }\n #optimole-app .has-background-white-bis {\n background-color: #fafafa !important; }\n #optimole-app .has-text-weight-light {\n font-weight: 300 !important; }\n #optimole-app .has-text-weight-normal {\n font-weight: 400 !important; }\n #optimole-app .has-text-weight-semibold {\n font-weight: 600 !important; }\n #optimole-app .has-text-weight-bold {\n font-weight: 700 !important; }\n #optimole-app .is-family-primary {\n font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }\n #optimole-app .is-family-secondary {\n font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }\n #optimole-app .is-family-sans-serif {\n font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }\n #optimole-app .is-family-monospace {\n font-family: monospace !important; }\n #optimole-app .is-family-code {\n font-family: monospace !important; }\n #optimole-app .is-block {\n display: block !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-block-mobile {\n display: block !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-block-tablet {\n display: block !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-block-tablet-only {\n display: block !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-block-touch {\n display: block !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-block-desktop {\n display: block !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-block-desktop-only {\n display: block !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-block-widescreen {\n display: block !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-block-widescreen-only {\n display: block !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-block-fullhd {\n display: block !important; } }\n #optimole-app .is-flex {\n display: -ms-flexbox !important;\n display: flex !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-flex-mobile {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-flex-tablet {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-flex-tablet-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-flex-touch {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-flex-desktop {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-flex-desktop-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-flex-widescreen {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-flex-widescreen-only {\n display: -ms-flexbox !important;\n display: flex !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-flex-fullhd {\n display: -ms-flexbox !important;\n display: flex !important; } }\n #optimole-app .is-inline {\n display: inline !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-mobile {\n display: inline !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-tablet {\n display: inline !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-tablet-only {\n display: inline !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-touch {\n display: inline !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-desktop {\n display: inline !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-desktop-only {\n display: inline !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-widescreen {\n display: inline !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-widescreen-only {\n display: inline !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-fullhd {\n display: inline !important; } }\n #optimole-app .is-inline-block {\n display: inline-block !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-block-mobile {\n display: inline-block !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-block-tablet {\n display: inline-block !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-block-tablet-only {\n display: inline-block !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-block-touch {\n display: inline-block !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-block-desktop {\n display: inline-block !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-block-desktop-only {\n display: inline-block !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-block-widescreen {\n display: inline-block !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-block-widescreen-only {\n display: inline-block !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-block-fullhd {\n display: inline-block !important; } }\n #optimole-app .is-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-inline-flex-mobile {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-inline-flex-tablet {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-inline-flex-tablet-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-inline-flex-touch {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-inline-flex-desktop {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-inline-flex-desktop-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-inline-flex-widescreen {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-inline-flex-widescreen-only {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-inline-flex-fullhd {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n #optimole-app .is-hidden {\n display: none !important; }\n #optimole-app .is-sr-only {\n border: none !important;\n clip: rect(0, 0, 0, 0) !important;\n height: 0.01em !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n white-space: nowrap !important;\n width: 0.01em !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-hidden-mobile {\n display: none !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-hidden-tablet {\n display: none !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-hidden-tablet-only {\n display: none !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-hidden-touch {\n display: none !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-hidden-desktop {\n display: none !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-hidden-desktop-only {\n display: none !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-hidden-widescreen {\n display: none !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-hidden-widescreen-only {\n display: none !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-hidden-fullhd {\n display: none !important; } }\n #optimole-app .is-invisible {\n visibility: hidden !important; }\n @media screen and (max-width: 768px) {\n #optimole-app .is-invisible-mobile {\n visibility: hidden !important; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .is-invisible-tablet {\n visibility: hidden !important; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .is-invisible-tablet-only {\n visibility: hidden !important; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .is-invisible-touch {\n visibility: hidden !important; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .is-invisible-desktop {\n visibility: hidden !important; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .is-invisible-desktop-only {\n visibility: hidden !important; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .is-invisible-widescreen {\n visibility: hidden !important; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .is-invisible-widescreen-only {\n visibility: hidden !important; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .is-invisible-fullhd {\n visibility: hidden !important; } }\n #optimole-app .is-marginless {\n margin: 0 !important; }\n #optimole-app .is-paddingless {\n padding: 0 !important; }\n #optimole-app .is-radiusless {\n border-radius: 0 !important; }\n #optimole-app .is-shadowless {\n box-shadow: none !important; }\n #optimole-app .box {\n background-color: white;\n border-radius: 6px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n color: #4a4a4a;\n display: block;\n padding: 1.25rem; }\n #optimole-app a.box:hover, #optimole-app a.box:focus {\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #3273dc; }\n #optimole-app a.box:active {\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #3273dc; }\n #optimole-app .button {\n background-color: white;\n border-color: #dbdbdb;\n border-width: 1px;\n color: #363636;\n cursor: pointer;\n -ms-flex-pack: center;\n justify-content: center;\n padding-bottom: calc(0.375em - 1px);\n padding-left: 0.75em;\n padding-right: 0.75em;\n padding-top: calc(0.375em - 1px);\n text-align: center;\n white-space: nowrap; }\n #optimole-app .button strong {\n color: inherit; }\n #optimole-app .button .icon, #optimole-app .button .icon.is-small, #optimole-app .button .icon.is-medium, #optimole-app .button .icon.is-large {\n height: 1.5em;\n width: 1.5em; }\n #optimole-app .button .icon:first-child:not(:last-child) {\n margin-left: calc(-0.375em - 1px);\n margin-right: 0.1875em; }\n #optimole-app .button .icon:last-child:not(:first-child) {\n margin-left: 0.1875em;\n margin-right: calc(-0.375em - 1px); }\n #optimole-app .button .icon:first-child:last-child {\n margin-left: calc(-0.375em - 1px);\n margin-right: calc(-0.375em - 1px); }\n #optimole-app .button:hover, #optimole-app .button.is-hovered {\n border-color: #b5b5b5;\n color: #363636; }\n #optimole-app .button:focus, #optimole-app .button.is-focused {\n border-color: #3273dc;\n color: #363636; }\n #optimole-app .button:focus:not(:active), #optimole-app .button.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .button:active, #optimole-app .button.is-active {\n border-color: #4a4a4a;\n color: #363636; }\n #optimole-app .button.is-text {\n background-color: transparent;\n border-color: transparent;\n color: #4a4a4a;\n text-decoration: underline; }\n #optimole-app .button.is-text:hover, #optimole-app .button.is-text.is-hovered, #optimole-app .button.is-text:focus, #optimole-app .button.is-text.is-focused {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-text:active, #optimole-app .button.is-text.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .button.is-text[disabled],\n fieldset[disabled] #optimole-app .button.is-text {\n background-color: transparent;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-white {\n background-color: white;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:hover, #optimole-app .button.is-white.is-hovered {\n background-color: #f9f9f9;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:focus, #optimole-app .button.is-white.is-focused {\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white:focus:not(:active), #optimole-app .button.is-white.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .button.is-white:active, #optimole-app .button.is-white.is-active {\n background-color: #f2f2f2;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .button.is-white[disabled],\n fieldset[disabled] #optimole-app .button.is-white {\n background-color: white;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-white.is-inverted {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-white.is-inverted:hover {\n background-color: black; }\n #optimole-app .button.is-white.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-white.is-inverted {\n background-color: #0a0a0a;\n border-color: transparent;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-white.is-loading::after {\n border-color: transparent transparent #0a0a0a #0a0a0a !important; }\n #optimole-app .button.is-white.is-outlined {\n background-color: transparent;\n border-color: white;\n color: white; }\n #optimole-app .button.is-white.is-outlined:hover, #optimole-app .button.is-white.is-outlined:focus {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-white.is-outlined.is-loading::after {\n border-color: transparent transparent white white !important; }\n #optimole-app .button.is-white.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-white.is-outlined {\n background-color: transparent;\n border-color: white;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-white.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n color: #0a0a0a; }\n #optimole-app .button.is-white.is-inverted.is-outlined:hover, #optimole-app .button.is-white.is-inverted.is-outlined:focus {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-white.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-white.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black {\n background-color: #0a0a0a;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:hover, #optimole-app .button.is-black.is-hovered {\n background-color: #040404;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:focus, #optimole-app .button.is-black.is-focused {\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black:focus:not(:active), #optimole-app .button.is-black.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .button.is-black:active, #optimole-app .button.is-black.is-active {\n background-color: black;\n border-color: transparent;\n color: white; }\n #optimole-app .button.is-black[disabled],\n fieldset[disabled] #optimole-app .button.is-black {\n background-color: #0a0a0a;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-black.is-inverted {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-black.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-black.is-inverted {\n background-color: white;\n border-color: transparent;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-loading::after {\n border-color: transparent transparent white white !important; }\n #optimole-app .button.is-black.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-outlined:hover, #optimole-app .button.is-black.is-outlined:focus {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .button.is-black.is-outlined.is-loading::after {\n border-color: transparent transparent #0a0a0a #0a0a0a !important; }\n #optimole-app .button.is-black.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-black.is-outlined {\n background-color: transparent;\n border-color: #0a0a0a;\n box-shadow: none;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted.is-outlined {\n background-color: transparent;\n border-color: white;\n color: white; }\n #optimole-app .button.is-black.is-inverted.is-outlined:hover, #optimole-app .button.is-black.is-inverted.is-outlined:focus {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .button.is-black.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-black.is-inverted.is-outlined {\n background-color: transparent;\n border-color: white;\n box-shadow: none;\n color: white; }\n #optimole-app .button.is-light {\n background-color: whitesmoke;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:hover, #optimole-app .button.is-light.is-hovered {\n background-color: #eeeeee;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:focus, #optimole-app .button.is-light.is-focused {\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light:focus:not(:active), #optimole-app .button.is-light.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .button.is-light:active, #optimole-app .button.is-light.is-active {\n background-color: #e8e8e8;\n border-color: transparent;\n color: #363636; }\n #optimole-app .button.is-light[disabled],\n fieldset[disabled] #optimole-app .button.is-light {\n background-color: whitesmoke;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-light.is-inverted {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted:hover {\n background-color: #292929; }\n #optimole-app .button.is-light.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-light.is-inverted {\n background-color: #363636;\n border-color: transparent;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-loading::after {\n border-color: transparent transparent #363636 #363636 !important; }\n #optimole-app .button.is-light.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-outlined:hover, #optimole-app .button.is-light.is-outlined:focus {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-light.is-outlined.is-loading::after {\n border-color: transparent transparent whitesmoke whitesmoke !important; }\n #optimole-app .button.is-light.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-light.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #363636;\n color: #363636; }\n #optimole-app .button.is-light.is-inverted.is-outlined:hover, #optimole-app .button.is-light.is-inverted.is-outlined:focus {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-light.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-light.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #363636;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark {\n background-color: #363636;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:hover, #optimole-app .button.is-dark.is-hovered {\n background-color: #2f2f2f;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:focus, #optimole-app .button.is-dark.is-focused {\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark:focus:not(:active), #optimole-app .button.is-dark.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .button.is-dark:active, #optimole-app .button.is-dark.is-active {\n background-color: #292929;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .button.is-dark[disabled],\n fieldset[disabled] #optimole-app .button.is-dark {\n background-color: #363636;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-dark.is-inverted {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted:hover {\n background-color: #e8e8e8; }\n #optimole-app .button.is-dark.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-dark.is-inverted {\n background-color: whitesmoke;\n border-color: transparent;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark.is-loading::after {\n border-color: transparent transparent whitesmoke whitesmoke !important; }\n #optimole-app .button.is-dark.is-outlined {\n background-color: transparent;\n border-color: #363636;\n color: #363636; }\n #optimole-app .button.is-dark.is-outlined:hover, #optimole-app .button.is-dark.is-outlined:focus {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .button.is-dark.is-outlined.is-loading::after {\n border-color: transparent transparent #363636 #363636 !important; }\n #optimole-app .button.is-dark.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-dark.is-outlined {\n background-color: transparent;\n border-color: #363636;\n box-shadow: none;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n color: whitesmoke; }\n #optimole-app .button.is-dark.is-inverted.is-outlined:hover, #optimole-app .button.is-dark.is-inverted.is-outlined:focus {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .button.is-dark.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-dark.is-inverted.is-outlined {\n background-color: transparent;\n border-color: whitesmoke;\n box-shadow: none;\n color: whitesmoke; }\n #optimole-app .button.is-primary {\n background-color: #EF686B;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:hover, #optimole-app .button.is-primary.is-hovered {\n background-color: #ee5c60;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:focus, #optimole-app .button.is-primary.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary:focus:not(:active), #optimole-app .button.is-primary.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(239, 104, 107, 0.25); }\n #optimole-app .button.is-primary:active, #optimole-app .button.is-primary.is-active {\n background-color: #ed5154;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-primary[disabled],\n fieldset[disabled] #optimole-app .button.is-primary {\n background-color: #EF686B;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-primary.is-inverted {\n background-color: #fff;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-primary.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-primary.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-primary.is-outlined {\n background-color: transparent;\n border-color: #EF686B;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-outlined:hover, #optimole-app .button.is-primary.is-outlined:focus {\n background-color: #EF686B;\n border-color: #EF686B;\n color: #fff; }\n #optimole-app .button.is-primary.is-outlined.is-loading::after {\n border-color: transparent transparent #EF686B #EF686B !important; }\n #optimole-app .button.is-primary.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-primary.is-outlined {\n background-color: transparent;\n border-color: #EF686B;\n box-shadow: none;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-primary.is-inverted.is-outlined:hover, #optimole-app .button.is-primary.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #EF686B; }\n #optimole-app .button.is-primary.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-primary.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-link {\n background-color: #3273dc;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:hover, #optimole-app .button.is-link.is-hovered {\n background-color: #276cda;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:focus, #optimole-app .button.is-link.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link:focus:not(:active), #optimole-app .button.is-link.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .button.is-link:active, #optimole-app .button.is-link.is-active {\n background-color: #2366d1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-link[disabled],\n fieldset[disabled] #optimole-app .button.is-link {\n background-color: #3273dc;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-link.is-inverted {\n background-color: #fff;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-link.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-link.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #3273dc; }\n #optimole-app .button.is-link.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-link.is-outlined {\n background-color: transparent;\n border-color: #3273dc;\n color: #3273dc; }\n #optimole-app .button.is-link.is-outlined:hover, #optimole-app .button.is-link.is-outlined:focus {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .button.is-link.is-outlined.is-loading::after {\n border-color: transparent transparent #3273dc #3273dc !important; }\n #optimole-app .button.is-link.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-link.is-outlined {\n background-color: transparent;\n border-color: #3273dc;\n box-shadow: none;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-link.is-inverted.is-outlined:hover, #optimole-app .button.is-link.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #3273dc; }\n #optimole-app .button.is-link.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-link.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-info {\n background-color: #5180C1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:hover, #optimole-app .button.is-info.is-hovered {\n background-color: #4879be;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:focus, #optimole-app .button.is-info.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info:focus:not(:active), #optimole-app .button.is-info.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(81, 128, 193, 0.25); }\n #optimole-app .button.is-info:active, #optimole-app .button.is-info.is-active {\n background-color: #4173b7;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-info[disabled],\n fieldset[disabled] #optimole-app .button.is-info {\n background-color: #5180C1;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-info.is-inverted {\n background-color: #fff;\n color: #5180C1; }\n #optimole-app .button.is-info.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-info.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-info.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #5180C1; }\n #optimole-app .button.is-info.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-info.is-outlined {\n background-color: transparent;\n border-color: #5180C1;\n color: #5180C1; }\n #optimole-app .button.is-info.is-outlined:hover, #optimole-app .button.is-info.is-outlined:focus {\n background-color: #5180C1;\n border-color: #5180C1;\n color: #fff; }\n #optimole-app .button.is-info.is-outlined.is-loading::after {\n border-color: transparent transparent #5180C1 #5180C1 !important; }\n #optimole-app .button.is-info.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-info.is-outlined {\n background-color: transparent;\n border-color: #5180C1;\n box-shadow: none;\n color: #5180C1; }\n #optimole-app .button.is-info.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-info.is-inverted.is-outlined:hover, #optimole-app .button.is-info.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #5180C1; }\n #optimole-app .button.is-info.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-info.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-success {\n background-color: #34a85e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:hover, #optimole-app .button.is-success.is-hovered {\n background-color: #319e59;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:focus, #optimole-app .button.is-success.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success:focus:not(:active), #optimole-app .button.is-success.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .button.is-success:active, #optimole-app .button.is-success.is-active {\n background-color: #2e9553;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-success[disabled],\n fieldset[disabled] #optimole-app .button.is-success {\n background-color: #34a85e;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-success.is-inverted {\n background-color: #fff;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-success.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-success.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #34a85e; }\n #optimole-app .button.is-success.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-success.is-outlined {\n background-color: transparent;\n border-color: #34a85e;\n color: #34a85e; }\n #optimole-app .button.is-success.is-outlined:hover, #optimole-app .button.is-success.is-outlined:focus {\n background-color: #34a85e;\n border-color: #34a85e;\n color: #fff; }\n #optimole-app .button.is-success.is-outlined.is-loading::after {\n border-color: transparent transparent #34a85e #34a85e !important; }\n #optimole-app .button.is-success.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-success.is-outlined {\n background-color: transparent;\n border-color: #34a85e;\n box-shadow: none;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-success.is-inverted.is-outlined:hover, #optimole-app .button.is-success.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #34a85e; }\n #optimole-app .button.is-success.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-success.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-warning {\n background-color: #ffdd57;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:hover, #optimole-app .button.is-warning.is-hovered {\n background-color: #ffdb4a;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:focus, #optimole-app .button.is-warning.is-focused {\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning:focus:not(:active), #optimole-app .button.is-warning.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .button.is-warning:active, #optimole-app .button.is-warning.is-active {\n background-color: #ffd83d;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning[disabled],\n fieldset[disabled] #optimole-app .button.is-warning {\n background-color: #ffdd57;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-warning.is-inverted {\n background-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted:hover {\n background-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-warning.is-inverted {\n background-color: rgba(0, 0, 0, 0.7);\n border-color: transparent;\n box-shadow: none;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-loading::after {\n border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }\n #optimole-app .button.is-warning.is-outlined {\n background-color: transparent;\n border-color: #ffdd57;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-outlined:hover, #optimole-app .button.is-warning.is-outlined:focus {\n background-color: #ffdd57;\n border-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-outlined.is-loading::after {\n border-color: transparent transparent #ffdd57 #ffdd57 !important; }\n #optimole-app .button.is-warning.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-warning.is-outlined {\n background-color: transparent;\n border-color: #ffdd57;\n box-shadow: none;\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted.is-outlined {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.7);\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-warning.is-inverted.is-outlined:hover, #optimole-app .button.is-warning.is-inverted.is-outlined:focus {\n background-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .button.is-warning.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-warning.is-inverted.is-outlined {\n background-color: transparent;\n border-color: rgba(0, 0, 0, 0.7);\n box-shadow: none;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .button.is-danger {\n background-color: #D54222;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:hover, #optimole-app .button.is-danger.is-hovered {\n background-color: #ca3f20;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:focus, #optimole-app .button.is-danger.is-focused {\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger:focus:not(:active), #optimole-app .button.is-danger.is-focused:not(:active) {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .button.is-danger:active, #optimole-app .button.is-danger.is-active {\n background-color: #bf3b1e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .button.is-danger[disabled],\n fieldset[disabled] #optimole-app .button.is-danger {\n background-color: #D54222;\n border-color: transparent;\n box-shadow: none; }\n #optimole-app .button.is-danger.is-inverted {\n background-color: #fff;\n color: #D54222; }\n #optimole-app .button.is-danger.is-inverted:hover {\n background-color: #f2f2f2; }\n #optimole-app .button.is-danger.is-inverted[disabled],\n fieldset[disabled] #optimole-app .button.is-danger.is-inverted {\n background-color: #fff;\n border-color: transparent;\n box-shadow: none;\n color: #D54222; }\n #optimole-app .button.is-danger.is-loading::after {\n border-color: transparent transparent #fff #fff !important; }\n #optimole-app .button.is-danger.is-outlined {\n background-color: transparent;\n border-color: #D54222;\n color: #D54222; }\n #optimole-app .button.is-danger.is-outlined:hover, #optimole-app .button.is-danger.is-outlined:focus {\n background-color: #D54222;\n border-color: #D54222;\n color: #fff; }\n #optimole-app .button.is-danger.is-outlined.is-loading::after {\n border-color: transparent transparent #D54222 #D54222 !important; }\n #optimole-app .button.is-danger.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-danger.is-outlined {\n background-color: transparent;\n border-color: #D54222;\n box-shadow: none;\n color: #D54222; }\n #optimole-app .button.is-danger.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n color: #fff; }\n #optimole-app .button.is-danger.is-inverted.is-outlined:hover, #optimole-app .button.is-danger.is-inverted.is-outlined:focus {\n background-color: #fff;\n color: #D54222; }\n #optimole-app .button.is-danger.is-inverted.is-outlined[disabled],\n fieldset[disabled] #optimole-app .button.is-danger.is-inverted.is-outlined {\n background-color: transparent;\n border-color: #fff;\n box-shadow: none;\n color: #fff; }\n #optimole-app .button.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .button.is-normal {\n font-size: 1rem; }\n #optimole-app .button.is-medium {\n font-size: 1.25rem; }\n #optimole-app .button.is-large {\n font-size: 1.5rem; }\n #optimole-app .button[disabled],\n fieldset[disabled] #optimole-app .button {\n background-color: white;\n border-color: #dbdbdb;\n box-shadow: none;\n opacity: 0.5; }\n #optimole-app .button.is-fullwidth {\n display: -ms-flexbox;\n display: flex;\n width: 100%; }\n #optimole-app .button.is-loading {\n color: transparent !important;\n pointer-events: none; }\n #optimole-app .button.is-loading::after {\n position: absolute;\n left: calc(50% - (1em / 2));\n top: calc(50% - (1em / 2));\n position: absolute !important; }\n #optimole-app .button.is-static {\n background-color: whitesmoke;\n border-color: #dbdbdb;\n color: #7a7a7a;\n box-shadow: none;\n pointer-events: none; }\n #optimole-app .button.is-rounded {\n border-radius: 290486px;\n padding-left: 1em;\n padding-right: 1em; }\n #optimole-app .buttons {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .buttons .button {\n margin-bottom: 0.5rem; }\n #optimole-app .buttons .button:not(:last-child):not(.is-fullwidth) {\n margin-right: 0.5rem; }\n #optimole-app .buttons:last-child {\n margin-bottom: -0.5rem; }\n #optimole-app .buttons:not(:last-child) {\n margin-bottom: 1rem; }\n #optimole-app .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {\n font-size: 1.25rem; }\n #optimole-app .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {\n font-size: 1.5rem; }\n #optimole-app .buttons.has-addons .button:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .buttons.has-addons .button:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n margin-right: -1px; }\n #optimole-app .buttons.has-addons .button:last-child {\n margin-right: 0; }\n #optimole-app .buttons.has-addons .button:hover, #optimole-app .buttons.has-addons .button.is-hovered {\n z-index: 2; }\n #optimole-app .buttons.has-addons .button:focus, #optimole-app .buttons.has-addons .button.is-focused, #optimole-app .buttons.has-addons .button:active, #optimole-app .buttons.has-addons .button.is-active, #optimole-app .buttons.has-addons .button.is-selected {\n z-index: 3; }\n #optimole-app .buttons.has-addons .button:focus:hover, #optimole-app .buttons.has-addons .button.is-focused:hover, #optimole-app .buttons.has-addons .button:active:hover, #optimole-app .buttons.has-addons .button.is-active:hover, #optimole-app .buttons.has-addons .button.is-selected:hover {\n z-index: 4; }\n #optimole-app .buttons.has-addons .button.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .buttons.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .buttons.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .container {\n margin: 0 auto;\n position: relative; }\n @media screen and (min-width: 1088px) {\n #optimole-app .container {\n max-width: 960px;\n width: 960px; }\n #optimole-app .container.is-fluid {\n margin-left: 64px;\n margin-right: 64px;\n max-width: none;\n width: auto; } }\n @media screen and (max-width: 1279px) {\n #optimole-app .container.is-widescreen {\n max-width: 1152px;\n width: auto; } }\n @media screen and (max-width: 1471px) {\n #optimole-app .container.is-fullhd {\n max-width: 1344px;\n width: auto; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .container {\n max-width: 1152px;\n width: 1152px; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .container {\n max-width: 1344px;\n width: 1344px; } }\n #optimole-app .content li + li {\n margin-top: 0.25em; }\n #optimole-app .content p:not(:last-child),\n #optimole-app .content dl:not(:last-child),\n #optimole-app .content ol:not(:last-child),\n #optimole-app .content ul:not(:last-child),\n #optimole-app .content blockquote:not(:last-child),\n #optimole-app .content pre:not(:last-child),\n #optimole-app .content table:not(:last-child) {\n margin-bottom: 1em; }\n #optimole-app .content h1,\n #optimole-app .content h2,\n #optimole-app .content h3,\n #optimole-app .content h4,\n #optimole-app .content h5,\n #optimole-app .content h6 {\n color: #363636;\n font-weight: 600;\n line-height: 1.125; }\n #optimole-app .content h1 {\n font-size: 2em;\n margin-bottom: 0.5em; }\n #optimole-app .content h1:not(:first-child) {\n margin-top: 1em; }\n #optimole-app .content h2 {\n font-size: 1.75em;\n margin-bottom: 0.5714em; }\n #optimole-app .content h2:not(:first-child) {\n margin-top: 1.1428em; }\n #optimole-app .content h3 {\n font-size: 1.5em;\n margin-bottom: 0.6666em; }\n #optimole-app .content h3:not(:first-child) {\n margin-top: 1.3333em; }\n #optimole-app .content h4 {\n font-size: 1.25em;\n margin-bottom: 0.8em; }\n #optimole-app .content h5 {\n font-size: 1.125em;\n margin-bottom: 0.8888em; }\n #optimole-app .content h6 {\n font-size: 1em;\n margin-bottom: 1em; }\n #optimole-app .content blockquote {\n background-color: whitesmoke;\n border-left: 5px solid #dbdbdb;\n padding: 1.25em 1.5em; }\n #optimole-app .content ol {\n list-style-position: outside;\n margin-left: 2em;\n margin-top: 1em; }\n #optimole-app .content ol:not([type]) {\n list-style-type: decimal; }\n #optimole-app .content ol:not([type]).is-lower-alpha {\n list-style-type: lower-alpha; }\n #optimole-app .content ol:not([type]).is-lower-roman {\n list-style-type: lower-roman; }\n #optimole-app .content ol:not([type]).is-upper-alpha {\n list-style-type: upper-alpha; }\n #optimole-app .content ol:not([type]).is-upper-roman {\n list-style-type: upper-roman; }\n #optimole-app .content ul {\n list-style: disc outside;\n margin-left: 2em;\n margin-top: 1em; }\n #optimole-app .content ul ul {\n list-style-type: circle;\n margin-top: 0.5em; }\n #optimole-app .content ul ul ul {\n list-style-type: square; }\n #optimole-app .content dd {\n margin-left: 2em; }\n #optimole-app .content figure {\n margin-left: 2em;\n margin-right: 2em;\n text-align: center; }\n #optimole-app .content figure:not(:first-child) {\n margin-top: 2em; }\n #optimole-app .content figure:not(:last-child) {\n margin-bottom: 2em; }\n #optimole-app .content figure img {\n display: inline-block; }\n #optimole-app .content figure figcaption {\n font-style: italic; }\n #optimole-app .content pre {\n -webkit-overflow-scrolling: touch;\n overflow-x: auto;\n padding: 1.25em 1.5em;\n white-space: pre;\n word-wrap: normal; }\n #optimole-app .content sup,\n #optimole-app .content sub {\n font-size: 75%; }\n #optimole-app .content table {\n width: 100%; }\n #optimole-app .content table td,\n #optimole-app .content table th {\n border: 1px solid #dbdbdb;\n border-width: 0 0 1px;\n padding: 0.5em 0.75em;\n vertical-align: top; }\n #optimole-app .content table th {\n color: #363636;\n text-align: left; }\n #optimole-app .content table thead td,\n #optimole-app .content table thead th {\n border-width: 0 0 2px;\n color: #363636; }\n #optimole-app .content table tfoot td,\n #optimole-app .content table tfoot th {\n border-width: 2px 0 0;\n color: #363636; }\n #optimole-app .content table tbody tr:last-child td,\n #optimole-app .content table tbody tr:last-child th {\n border-bottom-width: 0; }\n #optimole-app .content.is-small {\n font-size: 0.75rem; }\n #optimole-app .content.is-medium {\n font-size: 1.25rem; }\n #optimole-app .content.is-large {\n font-size: 1.5rem; }\n #optimole-app .input,\n #optimole-app .textarea {\n background-color: white;\n border-color: #dbdbdb;\n color: #363636;\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n max-width: 100%;\n width: 100%; }\n #optimole-app .input::-moz-placeholder,\n #optimole-app .textarea::-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input::-webkit-input-placeholder,\n #optimole-app .textarea::-webkit-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:-moz-placeholder,\n #optimole-app .textarea:-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:-ms-input-placeholder,\n #optimole-app .textarea:-ms-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .input:hover, #optimole-app .input.is-hovered,\n #optimole-app .textarea:hover,\n #optimole-app .textarea.is-hovered {\n border-color: #b5b5b5; }\n #optimole-app .input:focus, #optimole-app .input.is-focused, #optimole-app .input:active, #optimole-app .input.is-active,\n #optimole-app .textarea:focus,\n #optimole-app .textarea.is-focused,\n #optimole-app .textarea:active,\n #optimole-app .textarea.is-active {\n border-color: #3273dc;\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .input[disabled],\n fieldset[disabled] #optimole-app .input,\n #optimole-app .textarea[disabled],\n fieldset[disabled]\n #optimole-app .textarea {\n background-color: whitesmoke;\n border-color: whitesmoke;\n box-shadow: none;\n color: #7a7a7a; }\n #optimole-app .input[disabled]::-moz-placeholder,\n fieldset[disabled] #optimole-app .input::-moz-placeholder,\n #optimole-app .textarea[disabled]::-moz-placeholder,\n fieldset[disabled]\n #optimole-app .textarea::-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]::-webkit-input-placeholder,\n fieldset[disabled] #optimole-app .input::-webkit-input-placeholder,\n #optimole-app .textarea[disabled]::-webkit-input-placeholder,\n fieldset[disabled]\n #optimole-app .textarea::-webkit-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]:-moz-placeholder,\n fieldset[disabled] #optimole-app .input:-moz-placeholder,\n #optimole-app .textarea[disabled]:-moz-placeholder,\n fieldset[disabled]\n #optimole-app .textarea:-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[disabled]:-ms-input-placeholder,\n fieldset[disabled] #optimole-app .input:-ms-input-placeholder,\n #optimole-app .textarea[disabled]:-ms-input-placeholder,\n fieldset[disabled]\n #optimole-app .textarea:-ms-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .input[readonly],\n #optimole-app .textarea[readonly] {\n box-shadow: none; }\n #optimole-app .input.is-white,\n #optimole-app .textarea.is-white {\n border-color: white; }\n #optimole-app .input.is-white:focus, #optimole-app .input.is-white.is-focused, #optimole-app .input.is-white:active, #optimole-app .input.is-white.is-active,\n #optimole-app .textarea.is-white:focus,\n #optimole-app .textarea.is-white.is-focused,\n #optimole-app .textarea.is-white:active,\n #optimole-app .textarea.is-white.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .input.is-black,\n #optimole-app .textarea.is-black {\n border-color: #0a0a0a; }\n #optimole-app .input.is-black:focus, #optimole-app .input.is-black.is-focused, #optimole-app .input.is-black:active, #optimole-app .input.is-black.is-active,\n #optimole-app .textarea.is-black:focus,\n #optimole-app .textarea.is-black.is-focused,\n #optimole-app .textarea.is-black:active,\n #optimole-app .textarea.is-black.is-active {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .input.is-light,\n #optimole-app .textarea.is-light {\n border-color: whitesmoke; }\n #optimole-app .input.is-light:focus, #optimole-app .input.is-light.is-focused, #optimole-app .input.is-light:active, #optimole-app .input.is-light.is-active,\n #optimole-app .textarea.is-light:focus,\n #optimole-app .textarea.is-light.is-focused,\n #optimole-app .textarea.is-light:active,\n #optimole-app .textarea.is-light.is-active {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .input.is-dark,\n #optimole-app .textarea.is-dark {\n border-color: #363636; }\n #optimole-app .input.is-dark:focus, #optimole-app .input.is-dark.is-focused, #optimole-app .input.is-dark:active, #optimole-app .input.is-dark.is-active,\n #optimole-app .textarea.is-dark:focus,\n #optimole-app .textarea.is-dark.is-focused,\n #optimole-app .textarea.is-dark:active,\n #optimole-app .textarea.is-dark.is-active {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .input.is-primary,\n #optimole-app .textarea.is-primary {\n border-color: #EF686B; }\n #optimole-app .input.is-primary:focus, #optimole-app .input.is-primary.is-focused, #optimole-app .input.is-primary:active, #optimole-app .input.is-primary.is-active,\n #optimole-app .textarea.is-primary:focus,\n #optimole-app .textarea.is-primary.is-focused,\n #optimole-app .textarea.is-primary:active,\n #optimole-app .textarea.is-primary.is-active {\n box-shadow: 0 0 0 0.125em rgba(239, 104, 107, 0.25); }\n #optimole-app .input.is-link,\n #optimole-app .textarea.is-link {\n border-color: #3273dc; }\n #optimole-app .input.is-link:focus, #optimole-app .input.is-link.is-focused, #optimole-app .input.is-link:active, #optimole-app .input.is-link.is-active,\n #optimole-app .textarea.is-link:focus,\n #optimole-app .textarea.is-link.is-focused,\n #optimole-app .textarea.is-link:active,\n #optimole-app .textarea.is-link.is-active {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .input.is-info,\n #optimole-app .textarea.is-info {\n border-color: #5180C1; }\n #optimole-app .input.is-info:focus, #optimole-app .input.is-info.is-focused, #optimole-app .input.is-info:active, #optimole-app .input.is-info.is-active,\n #optimole-app .textarea.is-info:focus,\n #optimole-app .textarea.is-info.is-focused,\n #optimole-app .textarea.is-info:active,\n #optimole-app .textarea.is-info.is-active {\n box-shadow: 0 0 0 0.125em rgba(81, 128, 193, 0.25); }\n #optimole-app .input.is-success,\n #optimole-app .textarea.is-success {\n border-color: #34a85e; }\n #optimole-app .input.is-success:focus, #optimole-app .input.is-success.is-focused, #optimole-app .input.is-success:active, #optimole-app .input.is-success.is-active,\n #optimole-app .textarea.is-success:focus,\n #optimole-app .textarea.is-success.is-focused,\n #optimole-app .textarea.is-success:active,\n #optimole-app .textarea.is-success.is-active {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .input.is-warning,\n #optimole-app .textarea.is-warning {\n border-color: #ffdd57; }\n #optimole-app .input.is-warning:focus, #optimole-app .input.is-warning.is-focused, #optimole-app .input.is-warning:active, #optimole-app .input.is-warning.is-active,\n #optimole-app .textarea.is-warning:focus,\n #optimole-app .textarea.is-warning.is-focused,\n #optimole-app .textarea.is-warning:active,\n #optimole-app .textarea.is-warning.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .input.is-danger,\n #optimole-app .textarea.is-danger {\n border-color: #D54222; }\n #optimole-app .input.is-danger:focus, #optimole-app .input.is-danger.is-focused, #optimole-app .input.is-danger:active, #optimole-app .input.is-danger.is-active,\n #optimole-app .textarea.is-danger:focus,\n #optimole-app .textarea.is-danger.is-focused,\n #optimole-app .textarea.is-danger:active,\n #optimole-app .textarea.is-danger.is-active {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .input.is-small,\n #optimole-app .textarea.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .input.is-medium,\n #optimole-app .textarea.is-medium {\n font-size: 1.25rem; }\n #optimole-app .input.is-large,\n #optimole-app .textarea.is-large {\n font-size: 1.5rem; }\n #optimole-app .input.is-fullwidth,\n #optimole-app .textarea.is-fullwidth {\n display: block;\n width: 100%; }\n #optimole-app .input.is-inline,\n #optimole-app .textarea.is-inline {\n display: inline;\n width: auto; }\n #optimole-app .input.is-rounded {\n border-radius: 290486px;\n padding-left: 1em;\n padding-right: 1em; }\n #optimole-app .input.is-static {\n background-color: transparent;\n border-color: transparent;\n box-shadow: none;\n padding-left: 0;\n padding-right: 0; }\n #optimole-app .textarea {\n display: block;\n max-width: 100%;\n min-width: 100%;\n padding: 0.625em;\n resize: vertical; }\n #optimole-app .textarea:not([rows]) {\n max-height: 600px;\n min-height: 120px; }\n #optimole-app .textarea[rows] {\n height: initial; }\n #optimole-app .textarea.has-fixed-size {\n resize: none; }\n #optimole-app .checkbox,\n #optimole-app .radio {\n cursor: pointer;\n display: inline-block;\n line-height: 1.25;\n position: relative; }\n #optimole-app .checkbox input,\n #optimole-app .radio input {\n cursor: pointer; }\n #optimole-app .checkbox:hover,\n #optimole-app .radio:hover {\n color: #363636; }\n #optimole-app .checkbox[disabled],\n fieldset[disabled] #optimole-app .checkbox,\n #optimole-app .radio[disabled],\n fieldset[disabled]\n #optimole-app .radio {\n color: #7a7a7a;\n cursor: not-allowed; }\n #optimole-app .radio + .radio {\n margin-left: 0.5em; }\n #optimole-app .select {\n display: inline-block;\n max-width: 100%;\n position: relative;\n vertical-align: top; }\n #optimole-app .select:not(.is-multiple) {\n height: 2.25em; }\n #optimole-app .select:not(.is-multiple):not(.is-loading)::after {\n border-color: #3273dc;\n right: 1.125em;\n z-index: 4; }\n #optimole-app .select.is-rounded select {\n border-radius: 290486px;\n padding-left: 1em; }\n #optimole-app .select select {\n background-color: white;\n border-color: #dbdbdb;\n color: #363636;\n cursor: pointer;\n display: block;\n font-size: 1em;\n max-width: 100%;\n outline: none; }\n #optimole-app .select select::-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select::-webkit-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:-moz-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:-ms-input-placeholder {\n color: rgba(54, 54, 54, 0.3); }\n #optimole-app .select select:hover, #optimole-app .select select.is-hovered {\n border-color: #b5b5b5; }\n #optimole-app .select select:focus, #optimole-app .select select.is-focused, #optimole-app .select select:active, #optimole-app .select select.is-active {\n border-color: #3273dc;\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .select select[disabled],\n fieldset[disabled] #optimole-app .select select {\n background-color: whitesmoke;\n border-color: whitesmoke;\n box-shadow: none;\n color: #7a7a7a; }\n #optimole-app .select select[disabled]::-moz-placeholder,\n fieldset[disabled] #optimole-app .select select::-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]::-webkit-input-placeholder,\n fieldset[disabled] #optimole-app .select select::-webkit-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]:-moz-placeholder,\n fieldset[disabled] #optimole-app .select select:-moz-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select[disabled]:-ms-input-placeholder,\n fieldset[disabled] #optimole-app .select select:-ms-input-placeholder {\n color: rgba(122, 122, 122, 0.3); }\n #optimole-app .select select::-ms-expand {\n display: none; }\n #optimole-app .select select[disabled]:hover,\n fieldset[disabled] #optimole-app .select select:hover {\n border-color: whitesmoke; }\n #optimole-app .select select:not([multiple]) {\n padding-right: 2.5em; }\n #optimole-app .select select[multiple] {\n height: auto;\n padding: 0; }\n #optimole-app .select select[multiple] option {\n padding: 0.5em 1em; }\n #optimole-app .select:not(.is-multiple):not(.is-loading):hover::after {\n border-color: #363636; }\n #optimole-app .select.is-white:not(:hover)::after {\n border-color: white; }\n #optimole-app .select.is-white select {\n border-color: white; }\n #optimole-app .select.is-white select:hover, #optimole-app .select.is-white select.is-hovered {\n border-color: #f2f2f2; }\n #optimole-app .select.is-white select:focus, #optimole-app .select.is-white select.is-focused, #optimole-app .select.is-white select:active, #optimole-app .select.is-white select.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }\n #optimole-app .select.is-black:not(:hover)::after {\n border-color: #0a0a0a; }\n #optimole-app .select.is-black select {\n border-color: #0a0a0a; }\n #optimole-app .select.is-black select:hover, #optimole-app .select.is-black select.is-hovered {\n border-color: black; }\n #optimole-app .select.is-black select:focus, #optimole-app .select.is-black select.is-focused, #optimole-app .select.is-black select:active, #optimole-app .select.is-black select.is-active {\n box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }\n #optimole-app .select.is-light:not(:hover)::after {\n border-color: whitesmoke; }\n #optimole-app .select.is-light select {\n border-color: whitesmoke; }\n #optimole-app .select.is-light select:hover, #optimole-app .select.is-light select.is-hovered {\n border-color: #e8e8e8; }\n #optimole-app .select.is-light select:focus, #optimole-app .select.is-light select.is-focused, #optimole-app .select.is-light select:active, #optimole-app .select.is-light select.is-active {\n box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }\n #optimole-app .select.is-dark:not(:hover)::after {\n border-color: #363636; }\n #optimole-app .select.is-dark select {\n border-color: #363636; }\n #optimole-app .select.is-dark select:hover, #optimole-app .select.is-dark select.is-hovered {\n border-color: #292929; }\n #optimole-app .select.is-dark select:focus, #optimole-app .select.is-dark select.is-focused, #optimole-app .select.is-dark select:active, #optimole-app .select.is-dark select.is-active {\n box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }\n #optimole-app .select.is-primary:not(:hover)::after {\n border-color: #EF686B; }\n #optimole-app .select.is-primary select {\n border-color: #EF686B; }\n #optimole-app .select.is-primary select:hover, #optimole-app .select.is-primary select.is-hovered {\n border-color: #ed5154; }\n #optimole-app .select.is-primary select:focus, #optimole-app .select.is-primary select.is-focused, #optimole-app .select.is-primary select:active, #optimole-app .select.is-primary select.is-active {\n box-shadow: 0 0 0 0.125em rgba(239, 104, 107, 0.25); }\n #optimole-app .select.is-link:not(:hover)::after {\n border-color: #3273dc; }\n #optimole-app .select.is-link select {\n border-color: #3273dc; }\n #optimole-app .select.is-link select:hover, #optimole-app .select.is-link select.is-hovered {\n border-color: #2366d1; }\n #optimole-app .select.is-link select:focus, #optimole-app .select.is-link select.is-focused, #optimole-app .select.is-link select:active, #optimole-app .select.is-link select.is-active {\n box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }\n #optimole-app .select.is-info:not(:hover)::after {\n border-color: #5180C1; }\n #optimole-app .select.is-info select {\n border-color: #5180C1; }\n #optimole-app .select.is-info select:hover, #optimole-app .select.is-info select.is-hovered {\n border-color: #4173b7; }\n #optimole-app .select.is-info select:focus, #optimole-app .select.is-info select.is-focused, #optimole-app .select.is-info select:active, #optimole-app .select.is-info select.is-active {\n box-shadow: 0 0 0 0.125em rgba(81, 128, 193, 0.25); }\n #optimole-app .select.is-success:not(:hover)::after {\n border-color: #34a85e; }\n #optimole-app .select.is-success select {\n border-color: #34a85e; }\n #optimole-app .select.is-success select:hover, #optimole-app .select.is-success select.is-hovered {\n border-color: #2e9553; }\n #optimole-app .select.is-success select:focus, #optimole-app .select.is-success select.is-focused, #optimole-app .select.is-success select:active, #optimole-app .select.is-success select.is-active {\n box-shadow: 0 0 0 0.125em rgba(52, 168, 94, 0.25); }\n #optimole-app .select.is-warning:not(:hover)::after {\n border-color: #ffdd57; }\n #optimole-app .select.is-warning select {\n border-color: #ffdd57; }\n #optimole-app .select.is-warning select:hover, #optimole-app .select.is-warning select.is-hovered {\n border-color: #ffd83d; }\n #optimole-app .select.is-warning select:focus, #optimole-app .select.is-warning select.is-focused, #optimole-app .select.is-warning select:active, #optimole-app .select.is-warning select.is-active {\n box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }\n #optimole-app .select.is-danger:not(:hover)::after {\n border-color: #D54222; }\n #optimole-app .select.is-danger select {\n border-color: #D54222; }\n #optimole-app .select.is-danger select:hover, #optimole-app .select.is-danger select.is-hovered {\n border-color: #bf3b1e; }\n #optimole-app .select.is-danger select:focus, #optimole-app .select.is-danger select.is-focused, #optimole-app .select.is-danger select:active, #optimole-app .select.is-danger select.is-active {\n box-shadow: 0 0 0 0.125em rgba(213, 66, 34, 0.25); }\n #optimole-app .select.is-small {\n border-radius: 2px;\n font-size: 0.75rem; }\n #optimole-app .select.is-medium {\n font-size: 1.25rem; }\n #optimole-app .select.is-large {\n font-size: 1.5rem; }\n #optimole-app .select.is-disabled::after {\n border-color: #7a7a7a; }\n #optimole-app .select.is-fullwidth {\n width: 100%; }\n #optimole-app .select.is-fullwidth select {\n width: 100%; }\n #optimole-app .select.is-loading::after {\n margin-top: 0;\n position: absolute;\n right: 0.625em;\n top: 0.625em;\n transform: none; }\n #optimole-app .select.is-loading.is-small:after {\n font-size: 0.75rem; }\n #optimole-app .select.is-loading.is-medium:after {\n font-size: 1.25rem; }\n #optimole-app .select.is-loading.is-large:after {\n font-size: 1.5rem; }\n #optimole-app .file {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start;\n position: relative; }\n #optimole-app .file.is-white .file-cta {\n background-color: white;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-white:hover .file-cta, #optimole-app .file.is-white.is-hovered .file-cta {\n background-color: #f9f9f9;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-white:focus .file-cta, #optimole-app .file.is-white.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);\n color: #0a0a0a; }\n #optimole-app .file.is-white:active .file-cta, #optimole-app .file.is-white.is-active .file-cta {\n background-color: #f2f2f2;\n border-color: transparent;\n color: #0a0a0a; }\n #optimole-app .file.is-black .file-cta {\n background-color: #0a0a0a;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-black:hover .file-cta, #optimole-app .file.is-black.is-hovered .file-cta {\n background-color: #040404;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-black:focus .file-cta, #optimole-app .file.is-black.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);\n color: white; }\n #optimole-app .file.is-black:active .file-cta, #optimole-app .file.is-black.is-active .file-cta {\n background-color: black;\n border-color: transparent;\n color: white; }\n #optimole-app .file.is-light .file-cta {\n background-color: whitesmoke;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-light:hover .file-cta, #optimole-app .file.is-light.is-hovered .file-cta {\n background-color: #eeeeee;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-light:focus .file-cta, #optimole-app .file.is-light.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);\n color: #363636; }\n #optimole-app .file.is-light:active .file-cta, #optimole-app .file.is-light.is-active .file-cta {\n background-color: #e8e8e8;\n border-color: transparent;\n color: #363636; }\n #optimole-app .file.is-dark .file-cta {\n background-color: #363636;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-dark:hover .file-cta, #optimole-app .file.is-dark.is-hovered .file-cta {\n background-color: #2f2f2f;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-dark:focus .file-cta, #optimole-app .file.is-dark.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);\n color: whitesmoke; }\n #optimole-app .file.is-dark:active .file-cta, #optimole-app .file.is-dark.is-active .file-cta {\n background-color: #292929;\n border-color: transparent;\n color: whitesmoke; }\n #optimole-app .file.is-primary .file-cta {\n background-color: #EF686B;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-primary:hover .file-cta, #optimole-app .file.is-primary.is-hovered .file-cta {\n background-color: #ee5c60;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-primary:focus .file-cta, #optimole-app .file.is-primary.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(239, 104, 107, 0.25);\n color: #fff; }\n #optimole-app .file.is-primary:active .file-cta, #optimole-app .file.is-primary.is-active .file-cta {\n background-color: #ed5154;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link .file-cta {\n background-color: #3273dc;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link:hover .file-cta, #optimole-app .file.is-link.is-hovered .file-cta {\n background-color: #276cda;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-link:focus .file-cta, #optimole-app .file.is-link.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(50, 115, 220, 0.25);\n color: #fff; }\n #optimole-app .file.is-link:active .file-cta, #optimole-app .file.is-link.is-active .file-cta {\n background-color: #2366d1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info .file-cta {\n background-color: #5180C1;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info:hover .file-cta, #optimole-app .file.is-info.is-hovered .file-cta {\n background-color: #4879be;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-info:focus .file-cta, #optimole-app .file.is-info.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(81, 128, 193, 0.25);\n color: #fff; }\n #optimole-app .file.is-info:active .file-cta, #optimole-app .file.is-info.is-active .file-cta {\n background-color: #4173b7;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success .file-cta {\n background-color: #34a85e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success:hover .file-cta, #optimole-app .file.is-success.is-hovered .file-cta {\n background-color: #319e59;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-success:focus .file-cta, #optimole-app .file.is-success.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(52, 168, 94, 0.25);\n color: #fff; }\n #optimole-app .file.is-success:active .file-cta, #optimole-app .file.is-success.is-active .file-cta {\n background-color: #2e9553;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-warning .file-cta {\n background-color: #ffdd57;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:hover .file-cta, #optimole-app .file.is-warning.is-hovered .file-cta {\n background-color: #ffdb4a;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:focus .file-cta, #optimole-app .file.is-warning.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-warning:active .file-cta, #optimole-app .file.is-warning.is-active .file-cta {\n background-color: #ffd83d;\n border-color: transparent;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .file.is-danger .file-cta {\n background-color: #D54222;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-danger:hover .file-cta, #optimole-app .file.is-danger.is-hovered .file-cta {\n background-color: #ca3f20;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-danger:focus .file-cta, #optimole-app .file.is-danger.is-focused .file-cta {\n border-color: transparent;\n box-shadow: 0 0 0.5em rgba(213, 66, 34, 0.25);\n color: #fff; }\n #optimole-app .file.is-danger:active .file-cta, #optimole-app .file.is-danger.is-active .file-cta {\n background-color: #bf3b1e;\n border-color: transparent;\n color: #fff; }\n #optimole-app .file.is-small {\n font-size: 0.75rem; }\n #optimole-app .file.is-medium {\n font-size: 1.25rem; }\n #optimole-app .file.is-medium .file-icon .fa {\n font-size: 21px; }\n #optimole-app .file.is-large {\n font-size: 1.5rem; }\n #optimole-app .file.is-large .file-icon .fa {\n font-size: 28px; }\n #optimole-app .file.has-name .file-cta {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .file.has-name .file-name {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .file.has-name.is-empty .file-cta {\n border-radius: 4px; }\n #optimole-app .file.has-name.is-empty .file-name {\n display: none; }\n #optimole-app .file.is-boxed .file-label {\n -ms-flex-direction: column;\n flex-direction: column; }\n #optimole-app .file.is-boxed .file-cta {\n -ms-flex-direction: column;\n flex-direction: column;\n height: auto;\n padding: 1em 3em; }\n #optimole-app .file.is-boxed .file-name {\n border-width: 0 1px 1px; }\n #optimole-app .file.is-boxed .file-icon {\n height: 1.5em;\n width: 1.5em; }\n #optimole-app .file.is-boxed .file-icon .fa {\n font-size: 21px; }\n #optimole-app .file.is-boxed.is-small .file-icon .fa {\n font-size: 14px; }\n #optimole-app .file.is-boxed.is-medium .file-icon .fa {\n font-size: 28px; }\n #optimole-app .file.is-boxed.is-large .file-icon .fa {\n font-size: 35px; }\n #optimole-app .file.is-boxed.has-name .file-cta {\n border-radius: 4px 4px 0 0; }\n #optimole-app .file.is-boxed.has-name .file-name {\n border-radius: 0 0 4px 4px;\n border-width: 0 1px 1px; }\n #optimole-app .file.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .file.is-fullwidth .file-label {\n width: 100%; }\n #optimole-app .file.is-fullwidth .file-name {\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: none; }\n #optimole-app .file.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .file.is-right .file-cta {\n border-radius: 0 4px 4px 0; }\n #optimole-app .file.is-right .file-name {\n border-radius: 4px 0 0 4px;\n border-width: 1px 0 1px 1px;\n -ms-flex-order: -1;\n order: -1; }\n #optimole-app .file-label {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n -ms-flex-pack: start;\n justify-content: flex-start;\n overflow: hidden;\n position: relative; }\n #optimole-app .file-label:hover .file-cta {\n background-color: #eeeeee;\n color: #363636; }\n #optimole-app .file-label:hover .file-name {\n border-color: #d5d5d5; }\n #optimole-app .file-label:active .file-cta {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .file-label:active .file-name {\n border-color: #cfcfcf; }\n #optimole-app .file-input {\n height: 100%;\n left: 0;\n opacity: 0;\n outline: none;\n position: absolute;\n top: 0;\n width: 100%; }\n #optimole-app .file-cta,\n #optimole-app .file-name {\n border-color: #dbdbdb;\n border-radius: 4px;\n font-size: 1em;\n padding-left: 1em;\n padding-right: 1em;\n white-space: nowrap; }\n #optimole-app .file-cta {\n background-color: whitesmoke;\n color: #4a4a4a; }\n #optimole-app .file-name {\n border-color: #dbdbdb;\n border-style: solid;\n border-width: 1px 1px 1px 0;\n display: block;\n max-width: 16em;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis; }\n #optimole-app .file-icon {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n height: 1em;\n -ms-flex-pack: center;\n justify-content: center;\n margin-right: 0.5em;\n width: 1em; }\n #optimole-app .file-icon .fa {\n font-size: 14px; }\n #optimole-app .label {\n color: #363636;\n display: block;\n font-size: 1rem;\n font-weight: 700; }\n #optimole-app .label:not(:last-child) {\n margin-bottom: 0.5em; }\n #optimole-app .label.is-small {\n font-size: 0.75rem; }\n #optimole-app .label.is-medium {\n font-size: 1.25rem; }\n #optimole-app .label.is-large {\n font-size: 1.5rem; }\n #optimole-app .help {\n display: block;\n font-size: 0.75rem;\n margin-top: 0.25rem; }\n #optimole-app .help.is-white {\n color: white; }\n #optimole-app .help.is-black {\n color: #0a0a0a; }\n #optimole-app .help.is-light {\n color: whitesmoke; }\n #optimole-app .help.is-dark {\n color: #363636; }\n #optimole-app .help.is-primary {\n color: #EF686B; }\n #optimole-app .help.is-link {\n color: #3273dc; }\n #optimole-app .help.is-info {\n color: #5180C1; }\n #optimole-app .help.is-success {\n color: #34a85e; }\n #optimole-app .help.is-warning {\n color: #ffdd57; }\n #optimole-app .help.is-danger {\n color: #D54222; }\n #optimole-app .field:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .field.has-addons {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .field.has-addons .control:not(:last-child) {\n margin-right: -1px; }\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .button,\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .input,\n #optimole-app .field.has-addons .control:not(:first-child):not(:last-child) .select select {\n border-radius: 0; }\n #optimole-app .field.has-addons .control:first-child:not(:only-child) .button,\n #optimole-app .field.has-addons .control:first-child:not(:only-child) .input,\n #optimole-app .field.has-addons .control:first-child:not(:only-child) .select select {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .field.has-addons .control:last-child:not(:only-child) .button,\n #optimole-app .field.has-addons .control:last-child:not(:only-child) .input,\n #optimole-app .field.has-addons .control:last-child:not(:only-child) .select select {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .field.has-addons .control .button:not([disabled]):hover, #optimole-app .field.has-addons .control .button:not([disabled]).is-hovered,\n #optimole-app .field.has-addons .control .input:not([disabled]):hover,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-hovered,\n #optimole-app .field.has-addons .control .select select:not([disabled]):hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-hovered {\n z-index: 2; }\n #optimole-app .field.has-addons .control .button:not([disabled]):focus, #optimole-app .field.has-addons .control .button:not([disabled]).is-focused, #optimole-app .field.has-addons .control .button:not([disabled]):active, #optimole-app .field.has-addons .control .button:not([disabled]).is-active,\n #optimole-app .field.has-addons .control .input:not([disabled]):focus,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-focused,\n #optimole-app .field.has-addons .control .input:not([disabled]):active,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-active,\n #optimole-app .field.has-addons .control .select select:not([disabled]):focus,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-focused,\n #optimole-app .field.has-addons .control .select select:not([disabled]):active,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-active {\n z-index: 3; }\n #optimole-app .field.has-addons .control .button:not([disabled]):focus:hover, #optimole-app .field.has-addons .control .button:not([disabled]).is-focused:hover, #optimole-app .field.has-addons .control .button:not([disabled]):active:hover, #optimole-app .field.has-addons .control .button:not([disabled]).is-active:hover,\n #optimole-app .field.has-addons .control .input:not([disabled]):focus:hover,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-focused:hover,\n #optimole-app .field.has-addons .control .input:not([disabled]):active:hover,\n #optimole-app .field.has-addons .control .input:not([disabled]).is-active:hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]):focus:hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-focused:hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]):active:hover,\n #optimole-app .field.has-addons .control .select select:not([disabled]).is-active:hover {\n z-index: 4; }\n #optimole-app .field.has-addons .control.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .field.has-addons.has-addons-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .field.has-addons.has-addons-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .field.has-addons.has-addons-fullwidth .control {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .field.is-grouped {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .field.is-grouped > .control {\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .field.is-grouped > .control:not(:last-child) {\n margin-bottom: 0;\n margin-right: 0.75rem; }\n #optimole-app .field.is-grouped > .control.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field.is-grouped.is-grouped-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .field.is-grouped.is-grouped-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .field.is-grouped.is-grouped-multiline {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .field.is-grouped.is-grouped-multiline > .control:last-child, #optimole-app .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .field.is-grouped.is-grouped-multiline:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .field.is-grouped.is-grouped-multiline:not(:last-child) {\n margin-bottom: 0; }\n @media screen and (min-width: 769px), print {\n #optimole-app .field.is-horizontal {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .field-label .label {\n font-size: inherit; }\n @media screen and (max-width: 768px) {\n #optimole-app .field-label {\n margin-bottom: 0.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .field-label {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-right: 1.5rem;\n text-align: right; }\n #optimole-app .field-label.is-small {\n font-size: 0.75rem;\n padding-top: 0.375em; }\n #optimole-app .field-label.is-normal {\n padding-top: 0.375em; }\n #optimole-app .field-label.is-medium {\n font-size: 1.25rem;\n padding-top: 0.375em; }\n #optimole-app .field-label.is-large {\n font-size: 1.5rem;\n padding-top: 0.375em; } }\n #optimole-app .field-body .field .field {\n margin-bottom: 0; }\n @media screen and (min-width: 769px), print {\n #optimole-app .field-body {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 5;\n flex-grow: 5;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field-body .field {\n margin-bottom: 0; }\n #optimole-app .field-body > .field {\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .field-body > .field:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n #optimole-app .field-body > .field:not(:last-child) {\n margin-right: 0.75rem; } }\n #optimole-app .control {\n box-sizing: border-box;\n clear: both;\n font-size: 1rem;\n position: relative;\n text-align: left; }\n #optimole-app .control.has-icons-left .input:focus ~ .icon,\n #optimole-app .control.has-icons-left .select:focus ~ .icon, #optimole-app .control.has-icons-right .input:focus ~ .icon,\n #optimole-app .control.has-icons-right .select:focus ~ .icon {\n color: #7a7a7a; }\n #optimole-app .control.has-icons-left .input.is-small ~ .icon,\n #optimole-app .control.has-icons-left .select.is-small ~ .icon, #optimole-app .control.has-icons-right .input.is-small ~ .icon,\n #optimole-app .control.has-icons-right .select.is-small ~ .icon {\n font-size: 0.75rem; }\n #optimole-app .control.has-icons-left .input.is-medium ~ .icon,\n #optimole-app .control.has-icons-left .select.is-medium ~ .icon, #optimole-app .control.has-icons-right .input.is-medium ~ .icon,\n #optimole-app .control.has-icons-right .select.is-medium ~ .icon {\n font-size: 1.25rem; }\n #optimole-app .control.has-icons-left .input.is-large ~ .icon,\n #optimole-app .control.has-icons-left .select.is-large ~ .icon, #optimole-app .control.has-icons-right .input.is-large ~ .icon,\n #optimole-app .control.has-icons-right .select.is-large ~ .icon {\n font-size: 1.5rem; }\n #optimole-app .control.has-icons-left .icon, #optimole-app .control.has-icons-right .icon {\n color: #dbdbdb;\n height: 2.25em;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 2.25em;\n z-index: 4; }\n #optimole-app .control.has-icons-left .input,\n #optimole-app .control.has-icons-left .select select {\n padding-left: 2.25em; }\n #optimole-app .control.has-icons-left .icon.is-left {\n left: 0; }\n #optimole-app .control.has-icons-right .input,\n #optimole-app .control.has-icons-right .select select {\n padding-right: 2.25em; }\n #optimole-app .control.has-icons-right .icon.is-right {\n right: 0; }\n #optimole-app .control.is-loading::after {\n position: absolute !important;\n right: 0.625em;\n top: 0.625em;\n z-index: 4; }\n #optimole-app .control.is-loading.is-small:after {\n font-size: 0.75rem; }\n #optimole-app .control.is-loading.is-medium:after {\n font-size: 1.25rem; }\n #optimole-app .control.is-loading.is-large:after {\n font-size: 1.5rem; }\n #optimole-app .icon {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: center;\n justify-content: center;\n height: 1.5rem;\n width: 1.5rem; }\n #optimole-app .icon.is-small {\n height: 1rem;\n width: 1rem; }\n #optimole-app .icon.is-medium {\n height: 2rem;\n width: 2rem; }\n #optimole-app .icon.is-large {\n height: 3rem;\n width: 3rem; }\n #optimole-app .image {\n display: block;\n position: relative; }\n #optimole-app .image img {\n display: block;\n height: auto;\n width: 100%; }\n #optimole-app .image img.is-rounded {\n border-radius: 290486px; }\n #optimole-app .image.is-square img,\n #optimole-app .image.is-square .has-ratio, #optimole-app .image.is-1by1 img,\n #optimole-app .image.is-1by1 .has-ratio, #optimole-app .image.is-5by4 img,\n #optimole-app .image.is-5by4 .has-ratio, #optimole-app .image.is-4by3 img,\n #optimole-app .image.is-4by3 .has-ratio, #optimole-app .image.is-3by2 img,\n #optimole-app .image.is-3by2 .has-ratio, #optimole-app .image.is-5by3 img,\n #optimole-app .image.is-5by3 .has-ratio, #optimole-app .image.is-16by9 img,\n #optimole-app .image.is-16by9 .has-ratio, #optimole-app .image.is-2by1 img,\n #optimole-app .image.is-2by1 .has-ratio, #optimole-app .image.is-3by1 img,\n #optimole-app .image.is-3by1 .has-ratio, #optimole-app .image.is-4by5 img,\n #optimole-app .image.is-4by5 .has-ratio, #optimole-app .image.is-3by4 img,\n #optimole-app .image.is-3by4 .has-ratio, #optimole-app .image.is-2by3 img,\n #optimole-app .image.is-2by3 .has-ratio, #optimole-app .image.is-3by5 img,\n #optimole-app .image.is-3by5 .has-ratio, #optimole-app .image.is-9by16 img,\n #optimole-app .image.is-9by16 .has-ratio, #optimole-app .image.is-1by2 img,\n #optimole-app .image.is-1by2 .has-ratio, #optimole-app .image.is-1by3 img,\n #optimole-app .image.is-1by3 .has-ratio {\n height: 100%;\n width: 100%; }\n #optimole-app .image.is-square, #optimole-app .image.is-1by1 {\n padding-top: 100%; }\n #optimole-app .image.is-5by4 {\n padding-top: 80%; }\n #optimole-app .image.is-4by3 {\n padding-top: 75%; }\n #optimole-app .image.is-3by2 {\n padding-top: 66.6666%; }\n #optimole-app .image.is-5by3 {\n padding-top: 60%; }\n #optimole-app .image.is-16by9 {\n padding-top: 56.25%; }\n #optimole-app .image.is-2by1 {\n padding-top: 50%; }\n #optimole-app .image.is-3by1 {\n padding-top: 33.3333%; }\n #optimole-app .image.is-4by5 {\n padding-top: 125%; }\n #optimole-app .image.is-3by4 {\n padding-top: 133.3333%; }\n #optimole-app .image.is-2by3 {\n padding-top: 150%; }\n #optimole-app .image.is-3by5 {\n padding-top: 166.6666%; }\n #optimole-app .image.is-9by16 {\n padding-top: 177.7777%; }\n #optimole-app .image.is-1by2 {\n padding-top: 200%; }\n #optimole-app .image.is-1by3 {\n padding-top: 300%; }\n #optimole-app .image.is-16x16 {\n height: 16px;\n width: 16px; }\n #optimole-app .image.is-24x24 {\n height: 24px;\n width: 24px; }\n #optimole-app .image.is-32x32 {\n height: 32px;\n width: 32px; }\n #optimole-app .image.is-48x48 {\n height: 48px;\n width: 48px; }\n #optimole-app .image.is-64x64 {\n height: 64px;\n width: 64px; }\n #optimole-app .image.is-96x96 {\n height: 96px;\n width: 96px; }\n #optimole-app .image.is-128x128 {\n height: 128px;\n width: 128px; }\n #optimole-app .notification {\n background-color: whitesmoke;\n border-radius: 4px;\n padding: 1.25rem 2.5rem 1.25rem 1.5rem;\n position: relative; }\n #optimole-app .notification a:not(.button):not(.dropdown-item) {\n color: currentColor;\n text-decoration: underline; }\n #optimole-app .notification strong {\n color: currentColor; }\n #optimole-app .notification code,\n #optimole-app .notification pre {\n background: white; }\n #optimole-app .notification pre code {\n background: transparent; }\n #optimole-app .notification > .delete {\n position: absolute;\n right: 0.5rem;\n top: 0.5rem; }\n #optimole-app .notification .title,\n #optimole-app .notification .subtitle,\n #optimole-app .notification .content {\n color: currentColor; }\n #optimole-app .notification.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .notification.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .notification.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .notification.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .notification.is-primary {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .notification.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .notification.is-info {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .notification.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .notification.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .notification.is-danger {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .progress {\n -moz-appearance: none;\n -webkit-appearance: none;\n border: none;\n border-radius: 290486px;\n display: block;\n height: 1rem;\n overflow: hidden;\n padding: 0;\n width: 100%; }\n #optimole-app .progress::-webkit-progress-bar {\n background-color: #dbdbdb; }\n #optimole-app .progress::-webkit-progress-value {\n background-color: #4a4a4a; }\n #optimole-app .progress::-moz-progress-bar {\n background-color: #4a4a4a; }\n #optimole-app .progress::-ms-fill {\n background-color: #4a4a4a;\n border: none; }\n #optimole-app .progress:indeterminate {\n animation-duration: 1.5s;\n animation-iteration-count: infinite;\n animation-name: moveIndeterminate;\n animation-timing-function: linear;\n background-color: #dbdbdb;\n background-image: linear-gradient(to right, #4a4a4a 30%, #dbdbdb 30%);\n background-position: top left;\n background-repeat: no-repeat;\n background-size: 150% 150%; }\n #optimole-app .progress:indeterminate::-webkit-progress-bar {\n background-color: transparent; }\n #optimole-app .progress:indeterminate::-moz-progress-bar {\n background-color: transparent; }\n #optimole-app .progress.is-white::-webkit-progress-value {\n background-color: white; }\n #optimole-app .progress.is-white::-moz-progress-bar {\n background-color: white; }\n #optimole-app .progress.is-white::-ms-fill {\n background-color: white; }\n #optimole-app .progress.is-white:indeterminate {\n background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-black::-webkit-progress-value {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black::-moz-progress-bar {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black::-ms-fill {\n background-color: #0a0a0a; }\n #optimole-app .progress.is-black:indeterminate {\n background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-light::-webkit-progress-value {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light::-moz-progress-bar {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light::-ms-fill {\n background-color: whitesmoke; }\n #optimole-app .progress.is-light:indeterminate {\n background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-dark::-webkit-progress-value {\n background-color: #363636; }\n #optimole-app .progress.is-dark::-moz-progress-bar {\n background-color: #363636; }\n #optimole-app .progress.is-dark::-ms-fill {\n background-color: #363636; }\n #optimole-app .progress.is-dark:indeterminate {\n background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-primary::-webkit-progress-value {\n background-color: #EF686B; }\n #optimole-app .progress.is-primary::-moz-progress-bar {\n background-color: #EF686B; }\n #optimole-app .progress.is-primary::-ms-fill {\n background-color: #EF686B; }\n #optimole-app .progress.is-primary:indeterminate {\n background-image: linear-gradient(to right, #EF686B 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-link::-webkit-progress-value {\n background-color: #3273dc; }\n #optimole-app .progress.is-link::-moz-progress-bar {\n background-color: #3273dc; }\n #optimole-app .progress.is-link::-ms-fill {\n background-color: #3273dc; }\n #optimole-app .progress.is-link:indeterminate {\n background-image: linear-gradient(to right, #3273dc 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-info::-webkit-progress-value {\n background-color: #5180C1; }\n #optimole-app .progress.is-info::-moz-progress-bar {\n background-color: #5180C1; }\n #optimole-app .progress.is-info::-ms-fill {\n background-color: #5180C1; }\n #optimole-app .progress.is-info:indeterminate {\n background-image: linear-gradient(to right, #5180C1 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-success::-webkit-progress-value {\n background-color: #34a85e; }\n #optimole-app .progress.is-success::-moz-progress-bar {\n background-color: #34a85e; }\n #optimole-app .progress.is-success::-ms-fill {\n background-color: #34a85e; }\n #optimole-app .progress.is-success:indeterminate {\n background-image: linear-gradient(to right, #34a85e 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-warning::-webkit-progress-value {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning::-moz-progress-bar {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning::-ms-fill {\n background-color: #ffdd57; }\n #optimole-app .progress.is-warning:indeterminate {\n background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-danger::-webkit-progress-value {\n background-color: #D54222; }\n #optimole-app .progress.is-danger::-moz-progress-bar {\n background-color: #D54222; }\n #optimole-app .progress.is-danger::-ms-fill {\n background-color: #D54222; }\n #optimole-app .progress.is-danger:indeterminate {\n background-image: linear-gradient(to right, #D54222 30%, #dbdbdb 30%); }\n #optimole-app .progress.is-small {\n height: 0.75rem; }\n #optimole-app .progress.is-medium {\n height: 1.25rem; }\n #optimole-app .progress.is-large {\n height: 1.5rem; }\n\n@keyframes moveIndeterminate {\n from {\n background-position: 200% 0; }\n to {\n background-position: -200% 0; } }\n #optimole-app .table {\n background-color: white;\n color: #363636; }\n #optimole-app .table td,\n #optimole-app .table th {\n border: 1px solid #dbdbdb;\n border-width: 0 0 1px;\n padding: 0.5em 0.75em;\n vertical-align: top; }\n #optimole-app .table td.is-white,\n #optimole-app .table th.is-white {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .table td.is-black,\n #optimole-app .table th.is-black {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .table td.is-light,\n #optimole-app .table th.is-light {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .table td.is-dark,\n #optimole-app .table th.is-dark {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .table td.is-primary,\n #optimole-app .table th.is-primary {\n background-color: #EF686B;\n border-color: #EF686B;\n color: #fff; }\n #optimole-app .table td.is-link,\n #optimole-app .table th.is-link {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .table td.is-info,\n #optimole-app .table th.is-info {\n background-color: #5180C1;\n border-color: #5180C1;\n color: #fff; }\n #optimole-app .table td.is-success,\n #optimole-app .table th.is-success {\n background-color: #34a85e;\n border-color: #34a85e;\n color: #fff; }\n #optimole-app .table td.is-warning,\n #optimole-app .table th.is-warning {\n background-color: #ffdd57;\n border-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .table td.is-danger,\n #optimole-app .table th.is-danger {\n background-color: #D54222;\n border-color: #D54222;\n color: #fff; }\n #optimole-app .table td.is-narrow,\n #optimole-app .table th.is-narrow {\n white-space: nowrap;\n width: 1%; }\n #optimole-app .table td.is-selected,\n #optimole-app .table th.is-selected {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .table td.is-selected a,\n #optimole-app .table td.is-selected strong,\n #optimole-app .table th.is-selected a,\n #optimole-app .table th.is-selected strong {\n color: currentColor; }\n #optimole-app .table th {\n color: #363636;\n text-align: left; }\n #optimole-app .table tr.is-selected {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .table tr.is-selected a,\n #optimole-app .table tr.is-selected strong {\n color: currentColor; }\n #optimole-app .table tr.is-selected td,\n #optimole-app .table tr.is-selected th {\n border-color: #fff;\n color: currentColor; }\n #optimole-app .table thead {\n background-color: transparent; }\n #optimole-app .table thead td,\n #optimole-app .table thead th {\n border-width: 0 0 2px;\n color: #363636; }\n #optimole-app .table tfoot {\n background-color: transparent; }\n #optimole-app .table tfoot td,\n #optimole-app .table tfoot th {\n border-width: 2px 0 0;\n color: #363636; }\n #optimole-app .table tbody {\n background-color: transparent; }\n #optimole-app .table tbody tr:last-child td,\n #optimole-app .table tbody tr:last-child th {\n border-bottom-width: 0; }\n #optimole-app .table.is-bordered td,\n #optimole-app .table.is-bordered th {\n border-width: 1px; }\n #optimole-app .table.is-bordered tr:last-child td,\n #optimole-app .table.is-bordered tr:last-child th {\n border-bottom-width: 1px; }\n #optimole-app .table.is-fullwidth {\n width: 100%; }\n #optimole-app .table.is-hoverable tbody tr:not(.is-selected):hover {\n background-color: #fafafa; }\n #optimole-app .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {\n background-color: #fafafa; }\n #optimole-app .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {\n background-color: whitesmoke; }\n #optimole-app .table.is-narrow td,\n #optimole-app .table.is-narrow th {\n padding: 0.25em 0.5em; }\n #optimole-app .table.is-striped tbody tr:not(.is-selected):nth-child(even) {\n background-color: #fafafa; }\n #optimole-app .table-container {\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n overflow-y: hidden;\n max-width: 100%; }\n #optimole-app .tags {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .tags .tag {\n margin-bottom: 0.5rem; }\n #optimole-app .tags .tag:not(:last-child) {\n margin-right: 0.5rem; }\n #optimole-app .tags:last-child {\n margin-bottom: -0.5rem; }\n #optimole-app .tags:not(:last-child) {\n margin-bottom: 1rem; }\n #optimole-app .tags.are-medium .tag:not(.is-normal):not(.is-large) {\n font-size: 1rem; }\n #optimole-app .tags.are-large .tag:not(.is-normal):not(.is-medium) {\n font-size: 1.25rem; }\n #optimole-app .tags.has-addons .tag {\n margin-right: 0; }\n #optimole-app .tags.has-addons .tag:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .tags.has-addons .tag:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .tags.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .tags.is-centered .tag {\n margin-right: 0.25rem;\n margin-left: 0.25rem; }\n #optimole-app .tags.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .tags.is-right .tag:not(:first-child) {\n margin-left: 0.5rem; }\n #optimole-app .tags.is-right .tag:not(:last-child) {\n margin-right: 0; }\n #optimole-app .tags.has-addons .tag {\n margin-right: 0; }\n #optimole-app .tags.has-addons .tag:not(:first-child) {\n margin-left: 0;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n #optimole-app .tags.has-addons .tag:not(:last-child) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .tag:not(body) {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n border-radius: 4px;\n color: #4a4a4a;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 0.75rem;\n height: 2em;\n -ms-flex-pack: center;\n justify-content: center;\n line-height: 1.5;\n padding-left: 0.75em;\n padding-right: 0.75em;\n white-space: nowrap; }\n #optimole-app .tag:not(body) .delete {\n margin-left: 0.25rem;\n margin-right: -0.375rem; }\n #optimole-app .tag:not(body).is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .tag:not(body).is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .tag:not(body).is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .tag:not(body).is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .tag:not(body).is-primary {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .tag:not(body).is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .tag:not(body).is-info {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .tag:not(body).is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .tag:not(body).is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .tag:not(body).is-danger {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .tag:not(body).is-normal {\n font-size: 0.75rem; }\n #optimole-app .tag:not(body).is-medium {\n font-size: 1rem; }\n #optimole-app .tag:not(body).is-large {\n font-size: 1.25rem; }\n #optimole-app .tag:not(body) .icon:first-child:not(:last-child) {\n margin-left: -0.375em;\n margin-right: 0.1875em; }\n #optimole-app .tag:not(body) .icon:last-child:not(:first-child) {\n margin-left: 0.1875em;\n margin-right: -0.375em; }\n #optimole-app .tag:not(body) .icon:first-child:last-child {\n margin-left: -0.375em;\n margin-right: -0.375em; }\n #optimole-app .tag:not(body).is-delete {\n margin-left: 1px;\n padding: 0;\n position: relative;\n width: 2em; }\n #optimole-app .tag:not(body).is-delete::before, #optimole-app .tag:not(body).is-delete::after {\n background-color: currentColor;\n content: "";\n display: block;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform-origin: center center; }\n #optimole-app .tag:not(body).is-delete::before {\n height: 1px;\n width: 50%; }\n #optimole-app .tag:not(body).is-delete::after {\n height: 50%;\n width: 1px; }\n #optimole-app .tag:not(body).is-delete:hover, #optimole-app .tag:not(body).is-delete:focus {\n background-color: #e8e8e8; }\n #optimole-app .tag:not(body).is-delete:active {\n background-color: #dbdbdb; }\n #optimole-app .tag:not(body).is-rounded {\n border-radius: 290486px; }\n #optimole-app a.tag:hover {\n text-decoration: underline; }\n #optimole-app .title,\n #optimole-app .subtitle {\n word-break: break-word; }\n #optimole-app .title em,\n #optimole-app .title span,\n #optimole-app .subtitle em,\n #optimole-app .subtitle span {\n font-weight: inherit; }\n #optimole-app .title sub,\n #optimole-app .subtitle sub {\n font-size: 0.75em; }\n #optimole-app .title sup,\n #optimole-app .subtitle sup {\n font-size: 0.75em; }\n #optimole-app .title .tag,\n #optimole-app .subtitle .tag {\n vertical-align: middle; }\n #optimole-app .title {\n color: #363636;\n font-size: 2rem;\n font-weight: 600;\n line-height: 1.125; }\n #optimole-app .title strong {\n color: inherit;\n font-weight: inherit; }\n #optimole-app .title + .highlight {\n margin-top: -0.75rem; }\n #optimole-app .title:not(.is-spaced) + .subtitle {\n margin-top: -1.25rem; }\n #optimole-app .title.is-1 {\n font-size: 3rem; }\n #optimole-app .title.is-2 {\n font-size: 2.5rem; }\n #optimole-app .title.is-3 {\n font-size: 2rem; }\n #optimole-app .title.is-4 {\n font-size: 1.5rem; }\n #optimole-app .title.is-5 {\n font-size: 1.25rem; }\n #optimole-app .title.is-6 {\n font-size: 1rem; }\n #optimole-app .title.is-7 {\n font-size: 0.75rem; }\n #optimole-app .subtitle {\n color: #4a4a4a;\n font-size: 1.25rem;\n font-weight: 400;\n line-height: 1.25; }\n #optimole-app .subtitle strong {\n color: #363636;\n font-weight: 600; }\n #optimole-app .subtitle:not(.is-spaced) + .title {\n margin-top: -1.25rem; }\n #optimole-app .subtitle.is-1 {\n font-size: 3rem; }\n #optimole-app .subtitle.is-2 {\n font-size: 2.5rem; }\n #optimole-app .subtitle.is-3 {\n font-size: 2rem; }\n #optimole-app .subtitle.is-4 {\n font-size: 1.5rem; }\n #optimole-app .subtitle.is-5 {\n font-size: 1.25rem; }\n #optimole-app .subtitle.is-6 {\n font-size: 1rem; }\n #optimole-app .subtitle.is-7 {\n font-size: 0.75rem; }\n #optimole-app .heading {\n display: block;\n font-size: 11px;\n letter-spacing: 1px;\n margin-bottom: 5px;\n text-transform: uppercase; }\n #optimole-app .highlight {\n font-weight: 400;\n max-width: 100%;\n overflow: hidden;\n padding: 0; }\n #optimole-app .highlight pre {\n overflow: auto;\n max-width: 100%; }\n #optimole-app .number {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n border-radius: 290486px;\n display: -ms-inline-flexbox;\n display: inline-flex;\n font-size: 1.25rem;\n height: 2em;\n -ms-flex-pack: center;\n justify-content: center;\n margin-right: 1.5rem;\n min-width: 2.5em;\n padding: 0.25rem 0.5rem;\n text-align: center;\n vertical-align: top; }\n #optimole-app .breadcrumb {\n font-size: 1rem;\n white-space: nowrap; }\n #optimole-app .breadcrumb a {\n -ms-flex-align: center;\n align-items: center;\n color: #3273dc;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0 0.75em; }\n #optimole-app .breadcrumb a:hover {\n color: #363636; }\n #optimole-app .breadcrumb li {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .breadcrumb li:first-child a {\n padding-left: 0; }\n #optimole-app .breadcrumb li.is-active a {\n color: #363636;\n cursor: default;\n pointer-events: none; }\n #optimole-app .breadcrumb li + li::before {\n color: #b5b5b5;\n content: "/"; }\n #optimole-app .breadcrumb ul,\n #optimole-app .breadcrumb ol {\n -ms-flex-align: start;\n align-items: flex-start;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .breadcrumb .icon:first-child {\n margin-right: 0.5em; }\n #optimole-app .breadcrumb .icon:last-child {\n margin-left: 0.5em; }\n #optimole-app .breadcrumb.is-centered ol,\n #optimole-app .breadcrumb.is-centered ul {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .breadcrumb.is-right ol,\n #optimole-app .breadcrumb.is-right ul {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .breadcrumb.is-small {\n font-size: 0.75rem; }\n #optimole-app .breadcrumb.is-medium {\n font-size: 1.25rem; }\n #optimole-app .breadcrumb.is-large {\n font-size: 1.5rem; }\n #optimole-app .breadcrumb.has-arrow-separator li + li::before {\n content: "\\2192"; }\n #optimole-app .breadcrumb.has-bullet-separator li + li::before {\n content: "\\2022"; }\n #optimole-app .breadcrumb.has-dot-separator li + li::before {\n content: "\\B7"; }\n #optimole-app .breadcrumb.has-succeeds-separator li + li::before {\n content: "\\227B"; }\n #optimole-app .card {\n background-color: white;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n color: #4a4a4a;\n max-width: 100%;\n position: relative; }\n #optimole-app .card-header {\n background-color: transparent;\n -ms-flex-align: stretch;\n align-items: stretch;\n box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .card-header-title {\n -ms-flex-align: center;\n align-items: center;\n color: #363636;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n font-weight: 700;\n padding: 0.75rem; }\n #optimole-app .card-header-title.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .card-header-icon {\n -ms-flex-align: center;\n align-items: center;\n cursor: pointer;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0.75rem; }\n #optimole-app .card-image {\n display: block;\n position: relative; }\n #optimole-app .card-content {\n background-color: transparent;\n padding: 1.5rem; }\n #optimole-app .card-footer {\n background-color: transparent;\n border-top: 1px solid #dbdbdb;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .card-footer-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0.75rem; }\n #optimole-app .card-footer-item:not(:last-child) {\n border-right: 1px solid #dbdbdb; }\n #optimole-app .card .media:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .dropdown {\n display: -ms-inline-flexbox;\n display: inline-flex;\n position: relative;\n vertical-align: top; }\n #optimole-app .dropdown.is-active .dropdown-menu, #optimole-app .dropdown.is-hoverable:hover .dropdown-menu {\n display: block; }\n #optimole-app .dropdown.is-right .dropdown-menu {\n left: auto;\n right: 0; }\n #optimole-app .dropdown.is-up .dropdown-menu {\n bottom: 100%;\n padding-bottom: 4px;\n padding-top: initial;\n top: auto; }\n #optimole-app .dropdown-menu {\n display: none;\n left: 0;\n min-width: 12rem;\n padding-top: 4px;\n position: absolute;\n top: 100%;\n z-index: 20; }\n #optimole-app .dropdown-content {\n background-color: white;\n border-radius: 4px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n padding-bottom: 0.5rem;\n padding-top: 0.5rem; }\n #optimole-app .dropdown-item {\n color: #4a4a4a;\n display: block;\n font-size: 0.875rem;\n line-height: 1.5;\n padding: 0.375rem 1rem;\n position: relative; }\n #optimole-app a.dropdown-item,\n #optimole-app button.dropdown-item {\n padding-right: 3rem;\n text-align: left;\n white-space: nowrap;\n width: 100%; }\n #optimole-app a.dropdown-item:hover,\n #optimole-app button.dropdown-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app a.dropdown-item.is-active,\n #optimole-app button.dropdown-item.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .dropdown-divider {\n background-color: #dbdbdb;\n border: none;\n display: block;\n height: 1px;\n margin: 0.5rem 0; }\n #optimole-app .level {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .level code {\n border-radius: 4px; }\n #optimole-app .level img {\n display: inline-block;\n vertical-align: top; }\n #optimole-app .level.is-mobile {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level.is-mobile .level-left,\n #optimole-app .level.is-mobile .level-right {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level.is-mobile .level-left + .level-right {\n margin-top: 0; }\n #optimole-app .level.is-mobile .level-item:not(:last-child) {\n margin-bottom: 0;\n margin-right: 0.75rem; }\n #optimole-app .level.is-mobile .level-item:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .level > .level-item:not(.is-narrow) {\n -ms-flex-positive: 1;\n flex-grow: 1; } }\n #optimole-app .level-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .level-item .title,\n #optimole-app .level-item .subtitle {\n margin-bottom: 0; }\n @media screen and (max-width: 768px) {\n #optimole-app .level-item:not(:last-child) {\n margin-bottom: 0.75rem; } }\n #optimole-app .level-left,\n #optimole-app .level-right {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .level-left .level-item.is-flexible,\n #optimole-app .level-right .level-item.is-flexible {\n -ms-flex-positive: 1;\n flex-grow: 1; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-left .level-item:not(:last-child),\n #optimole-app .level-right .level-item:not(:last-child) {\n margin-right: 0.75rem; } }\n #optimole-app .level-left {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n @media screen and (max-width: 768px) {\n #optimole-app .level-left + .level-right {\n margin-top: 1.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-left {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .level-right {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n @media screen and (min-width: 769px), print {\n #optimole-app .level-right {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .list {\n background-color: white;\n border-radius: 4px;\n box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }\n #optimole-app .list-item {\n display: block;\n padding: 0.5em 1em; }\n #optimole-app .list-item:not(a) {\n color: #4a4a4a; }\n #optimole-app .list-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px; }\n #optimole-app .list-item:last-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px; }\n #optimole-app .list-item:not(:last-child) {\n border-bottom: 1px solid #dbdbdb; }\n #optimole-app .list-item.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app a.list-item {\n background-color: whitesmoke;\n cursor: pointer; }\n #optimole-app .media {\n -ms-flex-align: start;\n align-items: flex-start;\n display: -ms-flexbox;\n display: flex;\n text-align: left; }\n #optimole-app .media .content:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .media .media {\n border-top: 1px solid rgba(219, 219, 219, 0.5);\n display: -ms-flexbox;\n display: flex;\n padding-top: 0.75rem; }\n #optimole-app .media .media .content:not(:last-child),\n #optimole-app .media .media .control:not(:last-child) {\n margin-bottom: 0.5rem; }\n #optimole-app .media .media .media {\n padding-top: 0.5rem; }\n #optimole-app .media .media .media + .media {\n margin-top: 0.5rem; }\n #optimole-app .media + .media {\n border-top: 1px solid rgba(219, 219, 219, 0.5);\n margin-top: 1rem;\n padding-top: 1rem; }\n #optimole-app .media.is-large + .media {\n margin-top: 1.5rem;\n padding-top: 1.5rem; }\n #optimole-app .media-left,\n #optimole-app .media-right {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .media-left {\n margin-right: 1rem; }\n #optimole-app .media-right {\n margin-left: 1rem; }\n #optimole-app .media-content {\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n text-align: left; }\n @media screen and (max-width: 768px) {\n #optimole-app .media-content {\n overflow-x: auto; } }\n #optimole-app .menu {\n font-size: 1rem; }\n #optimole-app .menu.is-small {\n font-size: 0.75rem; }\n #optimole-app .menu.is-medium {\n font-size: 1.25rem; }\n #optimole-app .menu.is-large {\n font-size: 1.5rem; }\n #optimole-app .menu-list {\n line-height: 1.25; }\n #optimole-app .menu-list a {\n border-radius: 2px;\n color: #4a4a4a;\n display: block;\n padding: 0.5em 0.75em; }\n #optimole-app .menu-list a:hover {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .menu-list a.is-active {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .menu-list li ul {\n border-left: 1px solid #dbdbdb;\n margin: 0.75em;\n padding-left: 0.75em; }\n #optimole-app .menu-label {\n color: #7a7a7a;\n font-size: 0.75em;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n #optimole-app .menu-label:not(:first-child) {\n margin-top: 1em; }\n #optimole-app .menu-label:not(:last-child) {\n margin-bottom: 1em; }\n #optimole-app .message {\n background-color: whitesmoke;\n border-radius: 4px;\n font-size: 1rem; }\n #optimole-app .message strong {\n color: currentColor; }\n #optimole-app .message a:not(.button):not(.tag):not(.dropdown-item) {\n color: currentColor;\n text-decoration: underline; }\n #optimole-app .message.is-small {\n font-size: 0.75rem; }\n #optimole-app .message.is-medium {\n font-size: 1.25rem; }\n #optimole-app .message.is-large {\n font-size: 1.5rem; }\n #optimole-app .message.is-white {\n background-color: white; }\n #optimole-app .message.is-white .message-header {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .message.is-white .message-body {\n border-color: white;\n color: #4d4d4d; }\n #optimole-app .message.is-black {\n background-color: #fafafa; }\n #optimole-app .message.is-black .message-header {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .message.is-black .message-body {\n border-color: #0a0a0a;\n color: #090909; }\n #optimole-app .message.is-light {\n background-color: #fafafa; }\n #optimole-app .message.is-light .message-header {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .message.is-light .message-body {\n border-color: whitesmoke;\n color: #505050; }\n #optimole-app .message.is-dark {\n background-color: #fafafa; }\n #optimole-app .message.is-dark .message-header {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .message.is-dark .message-body {\n border-color: #363636;\n color: #2a2a2a; }\n #optimole-app .message.is-primary {\n background-color: #fef6f6; }\n #optimole-app .message.is-primary .message-header {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .message.is-primary .message-body {\n border-color: #EF686B;\n color: #bd2124; }\n #optimole-app .message.is-link {\n background-color: #f6f9fe; }\n #optimole-app .message.is-link .message-header {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .message.is-link .message-body {\n border-color: #3273dc;\n color: #22509a; }\n #optimole-app .message.is-info {\n background-color: #f7fafc; }\n #optimole-app .message.is-info .message-header {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .message.is-info .message-body {\n border-color: #5180C1;\n color: #36537c; }\n #optimole-app .message.is-success {\n background-color: #f7fdf9; }\n #optimole-app .message.is-success .message-header {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .message.is-success .message-body {\n border-color: #34a85e;\n color: #1b432a; }\n #optimole-app .message.is-warning {\n background-color: #fffdf5; }\n #optimole-app .message.is-warning .message-header {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .message.is-warning .message-body {\n border-color: #ffdd57;\n color: #3b3108; }\n #optimole-app .message.is-danger {\n background-color: #fef8f6; }\n #optimole-app .message.is-danger .message-header {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .message.is-danger .message-body {\n border-color: #D54222;\n color: #8d311d; }\n #optimole-app .message-header {\n -ms-flex-align: center;\n align-items: center;\n background-color: #4a4a4a;\n border-radius: 4px 4px 0 0;\n color: #fff;\n display: -ms-flexbox;\n display: flex;\n font-weight: 700;\n -ms-flex-pack: justify;\n justify-content: space-between;\n line-height: 1.25;\n padding: 0.75em 1em;\n position: relative; }\n #optimole-app .message-header .delete {\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-left: 0.75em; }\n #optimole-app .message-header + .message-body {\n border-width: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n #optimole-app .message-body {\n border-color: #dbdbdb;\n border-radius: 4px;\n border-style: solid;\n border-width: 0 0 0 4px;\n color: #4a4a4a;\n padding: 1.25em 1.5em; }\n #optimole-app .message-body code,\n #optimole-app .message-body pre {\n background-color: white; }\n #optimole-app .message-body pre code {\n background-color: transparent; }\n #optimole-app .modal {\n -ms-flex-align: center;\n align-items: center;\n display: none;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n position: fixed;\n z-index: 40; }\n #optimole-app .modal.is-active {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .modal-background {\n background-color: rgba(10, 10, 10, 0.86); }\n #optimole-app .modal-content,\n #optimole-app .modal-card {\n margin: 0 20px;\n max-height: calc(100vh - 160px);\n overflow: auto;\n position: relative;\n width: 100%; }\n @media screen and (min-width: 769px), print {\n #optimole-app .modal-content,\n #optimole-app .modal-card {\n margin: 0 auto;\n max-height: calc(100vh - 40px);\n width: 640px; } }\n #optimole-app .modal-close {\n background: none;\n height: 40px;\n position: fixed;\n right: 20px;\n top: 20px;\n width: 40px; }\n #optimole-app .modal-card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n max-height: calc(100vh - 40px);\n overflow: hidden;\n -ms-overflow-y: visible; }\n #optimole-app .modal-card-head,\n #optimole-app .modal-card-foot {\n -ms-flex-align: center;\n align-items: center;\n background-color: whitesmoke;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 20px;\n position: relative; }\n #optimole-app .modal-card-head {\n border-bottom: 1px solid #dbdbdb;\n border-top-left-radius: 6px;\n border-top-right-radius: 6px; }\n #optimole-app .modal-card-title {\n color: #363636;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n font-size: 1.5rem;\n line-height: 1; }\n #optimole-app .modal-card-foot {\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n border-top: 1px solid #dbdbdb; }\n #optimole-app .modal-card-foot .button:not(:last-child) {\n margin-right: 10px; }\n #optimole-app .modal-card-body {\n -webkit-overflow-scrolling: touch;\n background-color: white;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n overflow: auto;\n padding: 20px; }\n #optimole-app .navbar {\n background-color: white;\n min-height: 3.25rem;\n position: relative;\n z-index: 30; }\n #optimole-app .navbar.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link {\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-white .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-brand .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-brand .navbar-link::after {\n border-color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-burger {\n color: #0a0a0a; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-white .navbar-start > .navbar-item,\n #optimole-app .navbar.is-white .navbar-start .navbar-link,\n #optimole-app .navbar.is-white .navbar-end > .navbar-item,\n #optimole-app .navbar.is-white .navbar-end .navbar-link {\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-white .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-white .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-white .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-white .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-white .navbar-end .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-white .navbar-end .navbar-link::after {\n border-color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .navbar.is-white .navbar-dropdown a.navbar-item.is-active {\n background-color: white;\n color: #0a0a0a; } }\n #optimole-app .navbar.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link {\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-black .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-brand .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-brand .navbar-link::after {\n border-color: white; }\n #optimole-app .navbar.is-black .navbar-burger {\n color: white; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-black .navbar-start > .navbar-item,\n #optimole-app .navbar.is-black .navbar-start .navbar-link,\n #optimole-app .navbar.is-black .navbar-end > .navbar-item,\n #optimole-app .navbar.is-black .navbar-end .navbar-link {\n color: white; }\n #optimole-app .navbar.is-black .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-black .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-black .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-black .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-black .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-black .navbar-end .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-black .navbar-end .navbar-link::after {\n border-color: white; }\n #optimole-app .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: black;\n color: white; }\n #optimole-app .navbar.is-black .navbar-dropdown a.navbar-item.is-active {\n background-color: #0a0a0a;\n color: white; } }\n #optimole-app .navbar.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link {\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-light .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-brand .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-brand .navbar-link::after {\n border-color: #363636; }\n #optimole-app .navbar.is-light .navbar-burger {\n color: #363636; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-light .navbar-start > .navbar-item,\n #optimole-app .navbar.is-light .navbar-start .navbar-link,\n #optimole-app .navbar.is-light .navbar-end > .navbar-item,\n #optimole-app .navbar.is-light .navbar-end .navbar-link {\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-light .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-light .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-light .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-light .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-light .navbar-end .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-light .navbar-end .navbar-link::after {\n border-color: #363636; }\n #optimole-app .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .navbar.is-light .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #363636; } }\n #optimole-app .navbar.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link {\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-dark .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-brand .navbar-link::after {\n border-color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-burger {\n color: whitesmoke; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-dark .navbar-start > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link,\n #optimole-app .navbar.is-dark .navbar-end > .navbar-item,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link {\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-dark .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-dark .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-dark .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-dark .navbar-end .navbar-link::after {\n border-color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .navbar.is-dark .navbar-dropdown a.navbar-item.is-active {\n background-color: #363636;\n color: whitesmoke; } }\n #optimole-app .navbar.is-primary {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-primary .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link.is-active {\n background-color: #ed5154;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-primary .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-primary .navbar-start > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link,\n #optimole-app .navbar.is-primary .navbar-end > .navbar-item,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-primary .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-primary .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-primary .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link.is-active {\n background-color: #ed5154;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-primary .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #ed5154;\n color: #fff; }\n #optimole-app .navbar.is-primary .navbar-dropdown a.navbar-item.is-active {\n background-color: #EF686B;\n color: #fff; } }\n #optimole-app .navbar.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-link .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-brand .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-link .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-link .navbar-start > .navbar-item,\n #optimole-app .navbar.is-link .navbar-start .navbar-link,\n #optimole-app .navbar.is-link .navbar-end > .navbar-item,\n #optimole-app .navbar.is-link .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-link .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-link .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-link .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-link .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-link .navbar-end .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-link .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .navbar.is-link .navbar-dropdown a.navbar-item.is-active {\n background-color: #3273dc;\n color: #fff; } }\n #optimole-app .navbar.is-info {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-info .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-brand .navbar-link.is-active {\n background-color: #4173b7;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-info .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-info .navbar-start > .navbar-item,\n #optimole-app .navbar.is-info .navbar-start .navbar-link,\n #optimole-app .navbar.is-info .navbar-end > .navbar-item,\n #optimole-app .navbar.is-info .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-info .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-info .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-info .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-info .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-info .navbar-end .navbar-link.is-active {\n background-color: #4173b7;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-info .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #4173b7;\n color: #fff; }\n #optimole-app .navbar.is-info .navbar-dropdown a.navbar-item.is-active {\n background-color: #5180C1;\n color: #fff; } }\n #optimole-app .navbar.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-success .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-brand .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-success .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-success .navbar-start > .navbar-item,\n #optimole-app .navbar.is-success .navbar-start .navbar-link,\n #optimole-app .navbar.is-success .navbar-end > .navbar-item,\n #optimole-app .navbar.is-success .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-success .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-success .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-success .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-success .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-success .navbar-end .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-success .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .navbar.is-success .navbar-dropdown a.navbar-item.is-active {\n background-color: #34a85e;\n color: #fff; } }\n #optimole-app .navbar.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-warning .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-brand .navbar-link::after {\n border-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-burger {\n color: rgba(0, 0, 0, 0.7); }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-warning .navbar-start > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link,\n #optimole-app .navbar.is-warning .navbar-end > .navbar-item,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-warning .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-warning .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-warning .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-warning .navbar-end .navbar-link::after {\n border-color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); } }\n #optimole-app .navbar.is-danger {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand > a.navbar-item:hover, #optimole-app .navbar.is-danger .navbar-brand > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-brand .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-danger .navbar-burger {\n color: #fff; }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar.is-danger .navbar-start > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link,\n #optimole-app .navbar.is-danger .navbar-end > .navbar-item,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link {\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-start > a.navbar-item:hover, #optimole-app .navbar.is-danger .navbar-start > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-start .navbar-link.is-active,\n #optimole-app .navbar.is-danger .navbar-end > a.navbar-item:hover,\n #optimole-app .navbar.is-danger .navbar-end > a.navbar-item.is-active,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link:hover,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-start .navbar-link::after,\n #optimole-app .navbar.is-danger .navbar-end .navbar-link::after {\n border-color: #fff; }\n #optimole-app .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,\n #optimole-app .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {\n background-color: #D54222;\n color: #fff; } }\n #optimole-app .navbar > .container {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n min-height: 3.25rem;\n width: 100%; }\n #optimole-app .navbar.has-shadow {\n box-shadow: 0 2px 0 0 whitesmoke; }\n #optimole-app .navbar.is-fixed-bottom, #optimole-app .navbar.is-fixed-top {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom.has-shadow {\n box-shadow: 0 -2px 0 0 whitesmoke; }\n #optimole-app .navbar.is-fixed-top {\n top: 0; }\n #optimole-app html.has-navbar-fixed-top,\n #optimole-app body.has-navbar-fixed-top {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom,\n #optimole-app body.has-navbar-fixed-bottom {\n padding-bottom: 3.25rem; }\n #optimole-app .navbar-brand,\n #optimole-app .navbar-tabs {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n min-height: 3.25rem; }\n #optimole-app .navbar-brand a.navbar-item:hover {\n background-color: transparent; }\n #optimole-app .navbar-tabs {\n -webkit-overflow-scrolling: touch;\n max-width: 100vw;\n overflow-x: auto;\n overflow-y: hidden; }\n #optimole-app .navbar-burger {\n color: #4a4a4a;\n cursor: pointer;\n display: block;\n height: 3.25rem;\n position: relative;\n width: 3.25rem;\n margin-left: auto; }\n #optimole-app .navbar-burger span {\n background-color: currentColor;\n display: block;\n height: 1px;\n left: calc(50% - 8px);\n position: absolute;\n transform-origin: center;\n transition-duration: 86ms;\n transition-property: background-color, opacity, transform;\n transition-timing-function: ease-out;\n width: 16px; }\n #optimole-app .navbar-burger span:nth-child(1) {\n top: calc(50% - 6px); }\n #optimole-app .navbar-burger span:nth-child(2) {\n top: calc(50% - 1px); }\n #optimole-app .navbar-burger span:nth-child(3) {\n top: calc(50% + 4px); }\n #optimole-app .navbar-burger:hover {\n background-color: rgba(0, 0, 0, 0.05); }\n #optimole-app .navbar-burger.is-active span:nth-child(1) {\n transform: translateY(5px) rotate(45deg); }\n #optimole-app .navbar-burger.is-active span:nth-child(2) {\n opacity: 0; }\n #optimole-app .navbar-burger.is-active span:nth-child(3) {\n transform: translateY(-5px) rotate(-45deg); }\n #optimole-app .navbar-menu {\n display: none; }\n #optimole-app .navbar-item,\n #optimole-app .navbar-link {\n color: #4a4a4a;\n display: block;\n line-height: 1.5;\n padding: 0.5rem 0.75rem;\n position: relative; }\n #optimole-app .navbar-item .icon:only-child,\n #optimole-app .navbar-link .icon:only-child {\n margin-left: -0.25rem;\n margin-right: -0.25rem; }\n #optimole-app a.navbar-item,\n #optimole-app .navbar-link {\n cursor: pointer; }\n #optimole-app a.navbar-item:hover, #optimole-app a.navbar-item.is-active,\n #optimole-app .navbar-link:hover,\n #optimole-app .navbar-link.is-active {\n background-color: #fafafa;\n color: #3273dc; }\n #optimole-app .navbar-item {\n display: block;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .navbar-item img {\n max-height: 1.75rem; }\n #optimole-app .navbar-item.has-dropdown {\n padding: 0; }\n #optimole-app .navbar-item.is-expanded {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .navbar-item.is-tab {\n border-bottom: 1px solid transparent;\n min-height: 3.25rem;\n padding-bottom: calc(0.5rem - 1px); }\n #optimole-app .navbar-item.is-tab:hover {\n background-color: transparent;\n border-bottom-color: #3273dc; }\n #optimole-app .navbar-item.is-tab.is-active {\n background-color: transparent;\n border-bottom-color: #3273dc;\n border-bottom-style: solid;\n border-bottom-width: 3px;\n color: #3273dc;\n padding-bottom: calc(0.5rem - 3px); }\n #optimole-app .navbar-content {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .navbar-link:not(.is-arrowless) {\n padding-right: 2.5em; }\n #optimole-app .navbar-link:not(.is-arrowless)::after {\n border-color: #3273dc;\n margin-top: -0.375em;\n right: 1.125em; }\n #optimole-app .navbar-dropdown {\n font-size: 0.875rem;\n padding-bottom: 0.5rem;\n padding-top: 0.5rem; }\n #optimole-app .navbar-dropdown .navbar-item {\n padding-left: 1.5rem;\n padding-right: 1.5rem; }\n #optimole-app .navbar-divider {\n background-color: whitesmoke;\n border: none;\n display: none;\n height: 2px;\n margin: 0.5rem 0; }\n @media screen and (max-width: 1087px) {\n #optimole-app .navbar > .container {\n display: block; }\n #optimole-app .navbar-brand .navbar-item,\n #optimole-app .navbar-tabs .navbar-item {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-link::after {\n display: none; }\n #optimole-app .navbar-menu {\n background-color: white;\n box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);\n padding: 0.5rem 0; }\n #optimole-app .navbar-menu.is-active {\n display: block; }\n #optimole-app .navbar.is-fixed-bottom-touch, #optimole-app .navbar.is-fixed-top-touch {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom-touch {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom-touch.has-shadow {\n box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }\n #optimole-app .navbar.is-fixed-top-touch {\n top: 0; }\n #optimole-app .navbar.is-fixed-top .navbar-menu, #optimole-app .navbar.is-fixed-top-touch .navbar-menu {\n -webkit-overflow-scrolling: touch;\n max-height: calc(100vh - 3.25rem);\n overflow: auto; }\n #optimole-app html.has-navbar-fixed-top-touch,\n #optimole-app body.has-navbar-fixed-top-touch {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom-touch,\n #optimole-app body.has-navbar-fixed-bottom-touch {\n padding-bottom: 3.25rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .navbar,\n #optimole-app .navbar-menu,\n #optimole-app .navbar-start,\n #optimole-app .navbar-end {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar {\n min-height: 3.25rem; }\n #optimole-app .navbar.is-spaced {\n padding: 1rem 2rem; }\n #optimole-app .navbar.is-spaced .navbar-start,\n #optimole-app .navbar.is-spaced .navbar-end {\n -ms-flex-align: center;\n align-items: center; }\n #optimole-app .navbar.is-spaced a.navbar-item,\n #optimole-app .navbar.is-spaced .navbar-link {\n border-radius: 4px; }\n #optimole-app .navbar.is-transparent a.navbar-item:hover, #optimole-app .navbar.is-transparent a.navbar-item.is-active,\n #optimole-app .navbar.is-transparent .navbar-link:hover,\n #optimole-app .navbar.is-transparent .navbar-link.is-active {\n background-color: transparent !important; }\n #optimole-app .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, #optimole-app .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {\n background-color: transparent !important; }\n #optimole-app .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #3273dc; }\n #optimole-app .navbar-burger {\n display: none; }\n #optimole-app .navbar-item,\n #optimole-app .navbar-link {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-item {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .navbar-item.has-dropdown {\n -ms-flex-align: stretch;\n align-items: stretch; }\n #optimole-app .navbar-item.has-dropdown-up .navbar-link::after {\n transform: rotate(135deg) translate(0.25em, -0.25em); }\n #optimole-app .navbar-item.has-dropdown-up .navbar-dropdown {\n border-bottom: 2px solid #dbdbdb;\n border-radius: 6px 6px 0 0;\n border-top: none;\n bottom: 100%;\n box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);\n top: auto; }\n #optimole-app .navbar-item.is-active .navbar-dropdown, #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown {\n display: block; }\n .navbar.is-spaced #optimole-app .navbar-item.is-active .navbar-dropdown, #optimole-app .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown, #optimole-app .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0); }\n #optimole-app .navbar-menu {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .navbar-start {\n -ms-flex-pack: start;\n justify-content: flex-start;\n margin-right: auto; }\n #optimole-app .navbar-end {\n -ms-flex-pack: end;\n justify-content: flex-end;\n margin-left: auto; }\n #optimole-app .navbar-dropdown {\n background-color: white;\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n border-top: 2px solid #dbdbdb;\n box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);\n display: none;\n font-size: 0.875rem;\n left: 0;\n min-width: 100%;\n position: absolute;\n top: 100%;\n z-index: 20; }\n #optimole-app .navbar-dropdown .navbar-item {\n padding: 0.375rem 1rem;\n white-space: nowrap; }\n #optimole-app .navbar-dropdown a.navbar-item {\n padding-right: 3rem; }\n #optimole-app .navbar-dropdown a.navbar-item:hover {\n background-color: whitesmoke;\n color: #0a0a0a; }\n #optimole-app .navbar-dropdown a.navbar-item.is-active {\n background-color: whitesmoke;\n color: #3273dc; }\n .navbar.is-spaced #optimole-app .navbar-dropdown, #optimole-app .navbar-dropdown.is-boxed {\n border-radius: 6px;\n border-top: none;\n box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);\n display: block;\n opacity: 0;\n pointer-events: none;\n top: calc(100% + (-4px));\n transform: translateY(-5px);\n transition-duration: 86ms;\n transition-property: opacity, transform; }\n #optimole-app .navbar-dropdown.is-right {\n left: auto;\n right: 0; }\n #optimole-app .navbar-divider {\n display: block; }\n #optimole-app .navbar > .container .navbar-brand,\n #optimole-app .container > .navbar .navbar-brand {\n margin-left: -.75rem; }\n #optimole-app .navbar > .container .navbar-menu,\n #optimole-app .container > .navbar .navbar-menu {\n margin-right: -.75rem; }\n #optimole-app .navbar.is-fixed-bottom-desktop, #optimole-app .navbar.is-fixed-top-desktop {\n left: 0;\n position: fixed;\n right: 0;\n z-index: 30; }\n #optimole-app .navbar.is-fixed-bottom-desktop {\n bottom: 0; }\n #optimole-app .navbar.is-fixed-bottom-desktop.has-shadow {\n box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }\n #optimole-app .navbar.is-fixed-top-desktop {\n top: 0; }\n #optimole-app html.has-navbar-fixed-top-desktop,\n #optimole-app body.has-navbar-fixed-top-desktop {\n padding-top: 3.25rem; }\n #optimole-app html.has-navbar-fixed-bottom-desktop,\n #optimole-app body.has-navbar-fixed-bottom-desktop {\n padding-bottom: 3.25rem; }\n #optimole-app html.has-spaced-navbar-fixed-top,\n #optimole-app body.has-spaced-navbar-fixed-top {\n padding-top: 5.25rem; }\n #optimole-app html.has-spaced-navbar-fixed-bottom,\n #optimole-app body.has-spaced-navbar-fixed-bottom {\n padding-bottom: 5.25rem; }\n #optimole-app a.navbar-item.is-active,\n #optimole-app .navbar-link.is-active {\n color: #0a0a0a; }\n #optimole-app a.navbar-item.is-active:not(:hover),\n #optimole-app .navbar-link.is-active:not(:hover) {\n background-color: transparent; }\n #optimole-app .navbar-item.has-dropdown:hover .navbar-link, #optimole-app .navbar-item.has-dropdown.is-active .navbar-link {\n background-color: #fafafa; } }\n #optimole-app .hero.is-fullheight-with-navbar {\n min-height: calc(100vh - 3.25rem); }\n #optimole-app .pagination {\n font-size: 1rem;\n margin: -0.25rem; }\n #optimole-app .pagination.is-small {\n font-size: 0.75rem; }\n #optimole-app .pagination.is-medium {\n font-size: 1.25rem; }\n #optimole-app .pagination.is-large {\n font-size: 1.5rem; }\n #optimole-app .pagination.is-rounded .pagination-previous,\n #optimole-app .pagination.is-rounded .pagination-next {\n padding-left: 1em;\n padding-right: 1em;\n border-radius: 290486px; }\n #optimole-app .pagination.is-rounded .pagination-link {\n border-radius: 290486px; }\n #optimole-app .pagination,\n #optimole-app .pagination-list {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n text-align: center; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link,\n #optimole-app .pagination-ellipsis {\n font-size: 1em;\n padding-left: 0.5em;\n padding-right: 0.5em;\n -ms-flex-pack: center;\n justify-content: center;\n margin: 0.25rem;\n text-align: center; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next,\n #optimole-app .pagination-link {\n border-color: #dbdbdb;\n color: #363636;\n min-width: 2.25em; }\n #optimole-app .pagination-previous:hover,\n #optimole-app .pagination-next:hover,\n #optimole-app .pagination-link:hover {\n border-color: #b5b5b5;\n color: #363636; }\n #optimole-app .pagination-previous:focus,\n #optimole-app .pagination-next:focus,\n #optimole-app .pagination-link:focus {\n border-color: #3273dc; }\n #optimole-app .pagination-previous:active,\n #optimole-app .pagination-next:active,\n #optimole-app .pagination-link:active {\n box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }\n #optimole-app .pagination-previous[disabled],\n #optimole-app .pagination-next[disabled],\n #optimole-app .pagination-link[disabled] {\n background-color: #dbdbdb;\n border-color: #dbdbdb;\n box-shadow: none;\n color: #7a7a7a;\n opacity: 0.5; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next {\n padding-left: 0.75em;\n padding-right: 0.75em;\n white-space: nowrap; }\n #optimole-app .pagination-link.is-current {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff; }\n #optimole-app .pagination-ellipsis {\n color: #b5b5b5;\n pointer-events: none; }\n #optimole-app .pagination-list {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n @media screen and (max-width: 768px) {\n #optimole-app .pagination {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .pagination-previous,\n #optimole-app .pagination-next {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .pagination-list li {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .pagination-list {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n -ms-flex-pack: start;\n justify-content: flex-start;\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination-previous {\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination-next {\n -ms-flex-order: 3;\n order: 3; }\n #optimole-app .pagination {\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .pagination.is-centered .pagination-previous {\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination.is-centered .pagination-list {\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination.is-centered .pagination-next {\n -ms-flex-order: 3;\n order: 3; }\n #optimole-app .pagination.is-right .pagination-previous {\n -ms-flex-order: 1;\n order: 1; }\n #optimole-app .pagination.is-right .pagination-next {\n -ms-flex-order: 2;\n order: 2; }\n #optimole-app .pagination.is-right .pagination-list {\n -ms-flex-pack: end;\n justify-content: flex-end;\n -ms-flex-order: 3;\n order: 3; } }\n #optimole-app .panel {\n font-size: 1rem; }\n #optimole-app .panel:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .panel-heading,\n #optimole-app .panel-tabs,\n #optimole-app .panel-block {\n border-bottom: 1px solid #dbdbdb;\n border-left: 1px solid #dbdbdb;\n border-right: 1px solid #dbdbdb; }\n #optimole-app .panel-heading:first-child,\n #optimole-app .panel-tabs:first-child,\n #optimole-app .panel-block:first-child {\n border-top: 1px solid #dbdbdb; }\n #optimole-app .panel-heading {\n background-color: whitesmoke;\n border-radius: 4px 4px 0 0;\n color: #363636;\n font-size: 1.25em;\n font-weight: 300;\n line-height: 1.25;\n padding: 0.5em 0.75em; }\n #optimole-app .panel-tabs {\n -ms-flex-align: end;\n align-items: flex-end;\n display: -ms-flexbox;\n display: flex;\n font-size: 0.875em;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .panel-tabs a {\n border-bottom: 1px solid #dbdbdb;\n margin-bottom: -1px;\n padding: 0.5em; }\n #optimole-app .panel-tabs a.is-active {\n border-bottom-color: #4a4a4a;\n color: #363636; }\n #optimole-app .panel-list a {\n color: #4a4a4a; }\n #optimole-app .panel-list a:hover {\n color: #3273dc; }\n #optimole-app .panel-block {\n -ms-flex-align: center;\n align-items: center;\n color: #363636;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 0.5em 0.75em; }\n #optimole-app .panel-block input[type="checkbox"] {\n margin-right: 0.75em; }\n #optimole-app .panel-block > .control {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n width: 100%; }\n #optimole-app .panel-block.is-wrapped {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .panel-block.is-active {\n border-left-color: #3273dc;\n color: #363636; }\n #optimole-app .panel-block.is-active .panel-icon {\n color: #3273dc; }\n #optimole-app a.panel-block,\n #optimole-app label.panel-block {\n cursor: pointer; }\n #optimole-app a.panel-block:hover,\n #optimole-app label.panel-block:hover {\n background-color: whitesmoke; }\n #optimole-app .panel-icon {\n display: inline-block;\n font-size: 14px;\n height: 1em;\n line-height: 1em;\n text-align: center;\n vertical-align: top;\n width: 1em;\n color: #7a7a7a;\n margin-right: 0.75em; }\n #optimole-app .panel-icon .fa {\n font-size: inherit;\n line-height: inherit; }\n #optimole-app .tabs {\n -webkit-overflow-scrolling: touch;\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n font-size: 1rem;\n -ms-flex-pack: justify;\n justify-content: space-between;\n overflow: hidden;\n overflow-x: auto;\n white-space: nowrap; }\n #optimole-app .tabs a {\n -ms-flex-align: center;\n align-items: center;\n border-bottom-color: #dbdbdb;\n border-bottom-style: solid;\n border-bottom-width: 1px;\n color: #4a4a4a;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: -1px;\n padding: 0.5em 1em;\n vertical-align: top; }\n #optimole-app .tabs a:hover {\n border-bottom-color: #363636;\n color: #363636; }\n #optimole-app .tabs li {\n display: block; }\n #optimole-app .tabs li.is-active a {\n border-bottom-color: #3273dc;\n color: #3273dc; }\n #optimole-app .tabs ul {\n -ms-flex-align: center;\n align-items: center;\n border-bottom-color: #dbdbdb;\n border-bottom-style: solid;\n border-bottom-width: 1px;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n #optimole-app .tabs ul.is-left {\n padding-right: 0.75em; }\n #optimole-app .tabs ul.is-center {\n -ms-flex: none;\n flex: none;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0.75em;\n padding-right: 0.75em; }\n #optimole-app .tabs ul.is-right {\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding-left: 0.75em; }\n #optimole-app .tabs .icon:first-child {\n margin-right: 0.5em; }\n #optimole-app .tabs .icon:last-child {\n margin-left: 0.5em; }\n #optimole-app .tabs.is-centered ul {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .tabs.is-right ul {\n -ms-flex-pack: end;\n justify-content: flex-end; }\n #optimole-app .tabs.is-boxed a {\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0; }\n #optimole-app .tabs.is-boxed a:hover {\n background-color: whitesmoke;\n border-bottom-color: #dbdbdb; }\n #optimole-app .tabs.is-boxed li.is-active a {\n background-color: white;\n border-color: #dbdbdb;\n border-bottom-color: transparent !important; }\n #optimole-app .tabs.is-fullwidth li {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .tabs.is-toggle a {\n border-color: #dbdbdb;\n border-style: solid;\n border-width: 1px;\n margin-bottom: 0;\n position: relative; }\n #optimole-app .tabs.is-toggle a:hover {\n background-color: whitesmoke;\n border-color: #b5b5b5;\n z-index: 2; }\n #optimole-app .tabs.is-toggle li + li {\n margin-left: -1px; }\n #optimole-app .tabs.is-toggle li:first-child a {\n border-radius: 4px 0 0 4px; }\n #optimole-app .tabs.is-toggle li:last-child a {\n border-radius: 0 4px 4px 0; }\n #optimole-app .tabs.is-toggle li.is-active a {\n background-color: #3273dc;\n border-color: #3273dc;\n color: #fff;\n z-index: 1; }\n #optimole-app .tabs.is-toggle ul {\n border-bottom: none; }\n #optimole-app .tabs.is-toggle.is-toggle-rounded li:first-child a {\n border-bottom-left-radius: 290486px;\n border-top-left-radius: 290486px;\n padding-left: 1.25em; }\n #optimole-app .tabs.is-toggle.is-toggle-rounded li:last-child a {\n border-bottom-right-radius: 290486px;\n border-top-right-radius: 290486px;\n padding-right: 1.25em; }\n #optimole-app .tabs.is-small {\n font-size: 0.75rem; }\n #optimole-app .tabs.is-medium {\n font-size: 1.25rem; }\n #optimole-app .tabs.is-large {\n font-size: 1.5rem; }\n #optimole-app .column {\n display: block;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n padding: 0.75rem; }\n .columns.is-mobile > #optimole-app .column.is-narrow {\n -ms-flex: none;\n flex: none; }\n .columns.is-mobile > #optimole-app .column.is-full {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n .columns.is-mobile > #optimole-app .column.is-three-quarters {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n .columns.is-mobile > #optimole-app .column.is-two-thirds {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n .columns.is-mobile > #optimole-app .column.is-half {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n .columns.is-mobile > #optimole-app .column.is-one-third {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n .columns.is-mobile > #optimole-app .column.is-one-quarter {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n .columns.is-mobile > #optimole-app .column.is-one-fifth {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n .columns.is-mobile > #optimole-app .column.is-two-fifths {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n .columns.is-mobile > #optimole-app .column.is-three-fifths {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n .columns.is-mobile > #optimole-app .column.is-four-fifths {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n .columns.is-mobile > #optimole-app .column.is-offset-three-quarters {\n margin-left: 75%; }\n .columns.is-mobile > #optimole-app .column.is-offset-two-thirds {\n margin-left: 66.6666%; }\n .columns.is-mobile > #optimole-app .column.is-offset-half {\n margin-left: 50%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-third {\n margin-left: 33.3333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-quarter {\n margin-left: 25%; }\n .columns.is-mobile > #optimole-app .column.is-offset-one-fifth {\n margin-left: 20%; }\n .columns.is-mobile > #optimole-app .column.is-offset-two-fifths {\n margin-left: 40%; }\n .columns.is-mobile > #optimole-app .column.is-offset-three-fifths {\n margin-left: 60%; }\n .columns.is-mobile > #optimole-app .column.is-offset-four-fifths {\n margin-left: 80%; }\n .columns.is-mobile > #optimole-app .column.is-1 {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-1 {\n margin-left: 8.33333%; }\n .columns.is-mobile > #optimole-app .column.is-2 {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-2 {\n margin-left: 16.66667%; }\n .columns.is-mobile > #optimole-app .column.is-3 {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n .columns.is-mobile > #optimole-app .column.is-offset-3 {\n margin-left: 25%; }\n .columns.is-mobile > #optimole-app .column.is-4 {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-4 {\n margin-left: 33.33333%; }\n .columns.is-mobile > #optimole-app .column.is-5 {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-5 {\n margin-left: 41.66667%; }\n .columns.is-mobile > #optimole-app .column.is-6 {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n .columns.is-mobile > #optimole-app .column.is-offset-6 {\n margin-left: 50%; }\n .columns.is-mobile > #optimole-app .column.is-7 {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-7 {\n margin-left: 58.33333%; }\n .columns.is-mobile > #optimole-app .column.is-8 {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-8 {\n margin-left: 66.66667%; }\n .columns.is-mobile > #optimole-app .column.is-9 {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n .columns.is-mobile > #optimole-app .column.is-offset-9 {\n margin-left: 75%; }\n .columns.is-mobile > #optimole-app .column.is-10 {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n .columns.is-mobile > #optimole-app .column.is-offset-10 {\n margin-left: 83.33333%; }\n .columns.is-mobile > #optimole-app .column.is-11 {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n .columns.is-mobile > #optimole-app .column.is-offset-11 {\n margin-left: 91.66667%; }\n .columns.is-mobile > #optimole-app .column.is-12 {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n .columns.is-mobile > #optimole-app .column.is-offset-12 {\n margin-left: 100%; }\n @media screen and (max-width: 768px) {\n #optimole-app .column.is-narrow-mobile {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-mobile {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-mobile {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-mobile {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-mobile {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-mobile {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-mobile {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-mobile {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-mobile {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-mobile {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-mobile {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-mobile {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-mobile {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-mobile {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-mobile {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-mobile {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-mobile {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-mobile {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-mobile {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-mobile {\n margin-left: 80%; }\n #optimole-app .column.is-1-mobile {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-mobile {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-mobile {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-mobile {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-mobile {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-mobile {\n margin-left: 25%; }\n #optimole-app .column.is-4-mobile {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-mobile {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-mobile {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-mobile {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-mobile {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-mobile {\n margin-left: 50%; }\n #optimole-app .column.is-7-mobile {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-mobile {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-mobile {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-mobile {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-mobile {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-mobile {\n margin-left: 75%; }\n #optimole-app .column.is-10-mobile {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-mobile {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-mobile {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-mobile {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-mobile {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-mobile {\n margin-left: 100%; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .column.is-narrow, #optimole-app .column.is-narrow-tablet {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full, #optimole-app .column.is-full-tablet {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters, #optimole-app .column.is-three-quarters-tablet {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds, #optimole-app .column.is-two-thirds-tablet {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half, #optimole-app .column.is-half-tablet {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third, #optimole-app .column.is-one-third-tablet {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter, #optimole-app .column.is-one-quarter-tablet {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth, #optimole-app .column.is-one-fifth-tablet {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths, #optimole-app .column.is-two-fifths-tablet {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths, #optimole-app .column.is-three-fifths-tablet {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths, #optimole-app .column.is-four-fifths-tablet {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters, #optimole-app .column.is-offset-three-quarters-tablet {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds, #optimole-app .column.is-offset-two-thirds-tablet {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half, #optimole-app .column.is-offset-half-tablet {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third, #optimole-app .column.is-offset-one-third-tablet {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter, #optimole-app .column.is-offset-one-quarter-tablet {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth, #optimole-app .column.is-offset-one-fifth-tablet {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths, #optimole-app .column.is-offset-two-fifths-tablet {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths, #optimole-app .column.is-offset-three-fifths-tablet {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths, #optimole-app .column.is-offset-four-fifths-tablet {\n margin-left: 80%; }\n #optimole-app .column.is-1, #optimole-app .column.is-1-tablet {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1, #optimole-app .column.is-offset-1-tablet {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2, #optimole-app .column.is-2-tablet {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2, #optimole-app .column.is-offset-2-tablet {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3, #optimole-app .column.is-3-tablet {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3, #optimole-app .column.is-offset-3-tablet {\n margin-left: 25%; }\n #optimole-app .column.is-4, #optimole-app .column.is-4-tablet {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4, #optimole-app .column.is-offset-4-tablet {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5, #optimole-app .column.is-5-tablet {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5, #optimole-app .column.is-offset-5-tablet {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6, #optimole-app .column.is-6-tablet {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6, #optimole-app .column.is-offset-6-tablet {\n margin-left: 50%; }\n #optimole-app .column.is-7, #optimole-app .column.is-7-tablet {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7, #optimole-app .column.is-offset-7-tablet {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8, #optimole-app .column.is-8-tablet {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8, #optimole-app .column.is-offset-8-tablet {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9, #optimole-app .column.is-9-tablet {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9, #optimole-app .column.is-offset-9-tablet {\n margin-left: 75%; }\n #optimole-app .column.is-10, #optimole-app .column.is-10-tablet {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10, #optimole-app .column.is-offset-10-tablet {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11, #optimole-app .column.is-11-tablet {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11, #optimole-app .column.is-offset-11-tablet {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12, #optimole-app .column.is-12-tablet {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12, #optimole-app .column.is-offset-12-tablet {\n margin-left: 100%; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .column.is-narrow-touch {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-touch {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-touch {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-touch {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-touch {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-touch {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-touch {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-touch {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-touch {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-touch {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-touch {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-touch {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-touch {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-touch {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-touch {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-touch {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-touch {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-touch {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-touch {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-touch {\n margin-left: 80%; }\n #optimole-app .column.is-1-touch {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-touch {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-touch {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-touch {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-touch {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-touch {\n margin-left: 25%; }\n #optimole-app .column.is-4-touch {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-touch {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-touch {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-touch {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-touch {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-touch {\n margin-left: 50%; }\n #optimole-app .column.is-7-touch {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-touch {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-touch {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-touch {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-touch {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-touch {\n margin-left: 75%; }\n #optimole-app .column.is-10-touch {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-touch {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-touch {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-touch {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-touch {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-touch {\n margin-left: 100%; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .column.is-narrow-desktop {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-desktop {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-desktop {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-desktop {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-desktop {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-desktop {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-desktop {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-desktop {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-desktop {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-desktop {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-desktop {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-desktop {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-desktop {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-desktop {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-desktop {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-desktop {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-desktop {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-desktop {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-desktop {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-desktop {\n margin-left: 80%; }\n #optimole-app .column.is-1-desktop {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-desktop {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-desktop {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-desktop {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-desktop {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-desktop {\n margin-left: 25%; }\n #optimole-app .column.is-4-desktop {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-desktop {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-desktop {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-desktop {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-desktop {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-desktop {\n margin-left: 50%; }\n #optimole-app .column.is-7-desktop {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-desktop {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-desktop {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-desktop {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-desktop {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-desktop {\n margin-left: 75%; }\n #optimole-app .column.is-10-desktop {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-desktop {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-desktop {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-desktop {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-desktop {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-desktop {\n margin-left: 100%; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .column.is-narrow-widescreen {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-widescreen {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-widescreen {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-widescreen {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-widescreen {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-widescreen {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-widescreen {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-widescreen {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-widescreen {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-widescreen {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-widescreen {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-widescreen {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-widescreen {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-widescreen {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-widescreen {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-widescreen {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-widescreen {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-widescreen {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-widescreen {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-widescreen {\n margin-left: 80%; }\n #optimole-app .column.is-1-widescreen {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-widescreen {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-widescreen {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-widescreen {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-widescreen {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-widescreen {\n margin-left: 25%; }\n #optimole-app .column.is-4-widescreen {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-widescreen {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-widescreen {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-widescreen {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-widescreen {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-widescreen {\n margin-left: 50%; }\n #optimole-app .column.is-7-widescreen {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-widescreen {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-widescreen {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-widescreen {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-widescreen {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-widescreen {\n margin-left: 75%; }\n #optimole-app .column.is-10-widescreen {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-widescreen {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-widescreen {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-widescreen {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-widescreen {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-widescreen {\n margin-left: 100%; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .column.is-narrow-fullhd {\n -ms-flex: none;\n flex: none; }\n #optimole-app .column.is-full-fullhd {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-three-quarters-fullhd {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-two-thirds-fullhd {\n -ms-flex: none;\n flex: none;\n width: 66.6666%; }\n #optimole-app .column.is-half-fullhd {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-one-third-fullhd {\n -ms-flex: none;\n flex: none;\n width: 33.3333%; }\n #optimole-app .column.is-one-quarter-fullhd {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-one-fifth-fullhd {\n -ms-flex: none;\n flex: none;\n width: 20%; }\n #optimole-app .column.is-two-fifths-fullhd {\n -ms-flex: none;\n flex: none;\n width: 40%; }\n #optimole-app .column.is-three-fifths-fullhd {\n -ms-flex: none;\n flex: none;\n width: 60%; }\n #optimole-app .column.is-four-fifths-fullhd {\n -ms-flex: none;\n flex: none;\n width: 80%; }\n #optimole-app .column.is-offset-three-quarters-fullhd {\n margin-left: 75%; }\n #optimole-app .column.is-offset-two-thirds-fullhd {\n margin-left: 66.6666%; }\n #optimole-app .column.is-offset-half-fullhd {\n margin-left: 50%; }\n #optimole-app .column.is-offset-one-third-fullhd {\n margin-left: 33.3333%; }\n #optimole-app .column.is-offset-one-quarter-fullhd {\n margin-left: 25%; }\n #optimole-app .column.is-offset-one-fifth-fullhd {\n margin-left: 20%; }\n #optimole-app .column.is-offset-two-fifths-fullhd {\n margin-left: 40%; }\n #optimole-app .column.is-offset-three-fifths-fullhd {\n margin-left: 60%; }\n #optimole-app .column.is-offset-four-fifths-fullhd {\n margin-left: 80%; }\n #optimole-app .column.is-1-fullhd {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .column.is-offset-1-fullhd {\n margin-left: 8.33333%; }\n #optimole-app .column.is-2-fullhd {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .column.is-offset-2-fullhd {\n margin-left: 16.66667%; }\n #optimole-app .column.is-3-fullhd {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .column.is-offset-3-fullhd {\n margin-left: 25%; }\n #optimole-app .column.is-4-fullhd {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .column.is-offset-4-fullhd {\n margin-left: 33.33333%; }\n #optimole-app .column.is-5-fullhd {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .column.is-offset-5-fullhd {\n margin-left: 41.66667%; }\n #optimole-app .column.is-6-fullhd {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .column.is-offset-6-fullhd {\n margin-left: 50%; }\n #optimole-app .column.is-7-fullhd {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .column.is-offset-7-fullhd {\n margin-left: 58.33333%; }\n #optimole-app .column.is-8-fullhd {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .column.is-offset-8-fullhd {\n margin-left: 66.66667%; }\n #optimole-app .column.is-9-fullhd {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .column.is-offset-9-fullhd {\n margin-left: 75%; }\n #optimole-app .column.is-10-fullhd {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .column.is-offset-10-fullhd {\n margin-left: 83.33333%; }\n #optimole-app .column.is-11-fullhd {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .column.is-offset-11-fullhd {\n margin-left: 91.66667%; }\n #optimole-app .column.is-12-fullhd {\n -ms-flex: none;\n flex: none;\n width: 100%; }\n #optimole-app .column.is-offset-12-fullhd {\n margin-left: 100%; } }\n #optimole-app .columns {\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n margin-top: -0.75rem; }\n #optimole-app .columns:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .columns:not(:last-child) {\n margin-bottom: calc(1.5rem - 0.75rem); }\n #optimole-app .columns.is-centered {\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .columns.is-gapless {\n margin-left: 0;\n margin-right: 0;\n margin-top: 0; }\n #optimole-app .columns.is-gapless > .column {\n margin: 0;\n padding: 0 !important; }\n #optimole-app .columns.is-gapless:not(:last-child) {\n margin-bottom: 1.5rem; }\n #optimole-app .columns.is-gapless:last-child {\n margin-bottom: 0; }\n #optimole-app .columns.is-mobile {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .columns.is-multiline {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n #optimole-app .columns.is-vcentered {\n -ms-flex-align: center;\n align-items: center; }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns:not(.is-desktop) {\n display: -ms-flexbox;\n display: flex; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-desktop {\n display: -ms-flexbox;\n display: flex; } }\n #optimole-app .columns.is-variable {\n --columnGap: 0.75rem;\n margin-left: calc(-1 * var(--columnGap));\n margin-right: calc(-1 * var(--columnGap)); }\n #optimole-app .columns.is-variable .column {\n padding-left: var(--columnGap);\n padding-right: var(--columnGap); }\n #optimole-app .columns.is-variable.is-0 {\n --columnGap: 0rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-0-mobile {\n --columnGap: 0rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-0-tablet {\n --columnGap: 0rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-0-tablet-only {\n --columnGap: 0rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-0-touch {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-0-desktop {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-0-desktop-only {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-0-widescreen {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-0-widescreen-only {\n --columnGap: 0rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-0-fullhd {\n --columnGap: 0rem; } }\n #optimole-app .columns.is-variable.is-1 {\n --columnGap: 0.25rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-1-mobile {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-1-tablet {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-1-tablet-only {\n --columnGap: 0.25rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-1-touch {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-1-desktop {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-1-desktop-only {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-1-widescreen {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-1-widescreen-only {\n --columnGap: 0.25rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-1-fullhd {\n --columnGap: 0.25rem; } }\n #optimole-app .columns.is-variable.is-2 {\n --columnGap: 0.5rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-2-mobile {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-2-tablet {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-2-tablet-only {\n --columnGap: 0.5rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-2-touch {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-2-desktop {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-2-desktop-only {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-2-widescreen {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-2-widescreen-only {\n --columnGap: 0.5rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-2-fullhd {\n --columnGap: 0.5rem; } }\n #optimole-app .columns.is-variable.is-3 {\n --columnGap: 0.75rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-3-mobile {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-3-tablet {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-3-tablet-only {\n --columnGap: 0.75rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-3-touch {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-3-desktop {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-3-desktop-only {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-3-widescreen {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-3-widescreen-only {\n --columnGap: 0.75rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-3-fullhd {\n --columnGap: 0.75rem; } }\n #optimole-app .columns.is-variable.is-4 {\n --columnGap: 1rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-4-mobile {\n --columnGap: 1rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-4-tablet {\n --columnGap: 1rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-4-tablet-only {\n --columnGap: 1rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-4-touch {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-4-desktop {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-4-desktop-only {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-4-widescreen {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-4-widescreen-only {\n --columnGap: 1rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-4-fullhd {\n --columnGap: 1rem; } }\n #optimole-app .columns.is-variable.is-5 {\n --columnGap: 1.25rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-5-mobile {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-5-tablet {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-5-tablet-only {\n --columnGap: 1.25rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-5-touch {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-5-desktop {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-5-desktop-only {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-5-widescreen {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-5-widescreen-only {\n --columnGap: 1.25rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-5-fullhd {\n --columnGap: 1.25rem; } }\n #optimole-app .columns.is-variable.is-6 {\n --columnGap: 1.5rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-6-mobile {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-6-tablet {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-6-tablet-only {\n --columnGap: 1.5rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-6-touch {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-6-desktop {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-6-desktop-only {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-6-widescreen {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-6-widescreen-only {\n --columnGap: 1.5rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-6-fullhd {\n --columnGap: 1.5rem; } }\n #optimole-app .columns.is-variable.is-7 {\n --columnGap: 1.75rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-7-mobile {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-7-tablet {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-7-tablet-only {\n --columnGap: 1.75rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-7-touch {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-7-desktop {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-7-desktop-only {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-7-widescreen {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-7-widescreen-only {\n --columnGap: 1.75rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-7-fullhd {\n --columnGap: 1.75rem; } }\n #optimole-app .columns.is-variable.is-8 {\n --columnGap: 2rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .columns.is-variable.is-8-mobile {\n --columnGap: 2rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .columns.is-variable.is-8-tablet {\n --columnGap: 2rem; } }\n @media screen and (min-width: 769px) and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-8-tablet-only {\n --columnGap: 2rem; } }\n @media screen and (max-width: 1087px) {\n #optimole-app .columns.is-variable.is-8-touch {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1088px) {\n #optimole-app .columns.is-variable.is-8-desktop {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1088px) and (max-width: 1279px) {\n #optimole-app .columns.is-variable.is-8-desktop-only {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1280px) {\n #optimole-app .columns.is-variable.is-8-widescreen {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1280px) and (max-width: 1471px) {\n #optimole-app .columns.is-variable.is-8-widescreen-only {\n --columnGap: 2rem; } }\n @media screen and (min-width: 1472px) {\n #optimole-app .columns.is-variable.is-8-fullhd {\n --columnGap: 2rem; } }\n #optimole-app .tile {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: block;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n min-height: -webkit-min-content;\n min-height: -moz-min-content;\n min-height: min-content; }\n #optimole-app .tile.is-ancestor {\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n margin-top: -0.75rem; }\n #optimole-app .tile.is-ancestor:last-child {\n margin-bottom: -0.75rem; }\n #optimole-app .tile.is-ancestor:not(:last-child) {\n margin-bottom: 0.75rem; }\n #optimole-app .tile.is-child {\n margin: 0 !important; }\n #optimole-app .tile.is-parent {\n padding: 0.75rem; }\n #optimole-app .tile.is-vertical {\n -ms-flex-direction: column;\n flex-direction: column; }\n #optimole-app .tile.is-vertical > .tile.is-child:not(:last-child) {\n margin-bottom: 1.5rem !important; }\n @media screen and (min-width: 769px), print {\n #optimole-app .tile:not(.is-child) {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .tile.is-1 {\n -ms-flex: none;\n flex: none;\n width: 8.33333%; }\n #optimole-app .tile.is-2 {\n -ms-flex: none;\n flex: none;\n width: 16.66667%; }\n #optimole-app .tile.is-3 {\n -ms-flex: none;\n flex: none;\n width: 25%; }\n #optimole-app .tile.is-4 {\n -ms-flex: none;\n flex: none;\n width: 33.33333%; }\n #optimole-app .tile.is-5 {\n -ms-flex: none;\n flex: none;\n width: 41.66667%; }\n #optimole-app .tile.is-6 {\n -ms-flex: none;\n flex: none;\n width: 50%; }\n #optimole-app .tile.is-7 {\n -ms-flex: none;\n flex: none;\n width: 58.33333%; }\n #optimole-app .tile.is-8 {\n -ms-flex: none;\n flex: none;\n width: 66.66667%; }\n #optimole-app .tile.is-9 {\n -ms-flex: none;\n flex: none;\n width: 75%; }\n #optimole-app .tile.is-10 {\n -ms-flex: none;\n flex: none;\n width: 83.33333%; }\n #optimole-app .tile.is-11 {\n -ms-flex: none;\n flex: none;\n width: 91.66667%; }\n #optimole-app .tile.is-12 {\n -ms-flex: none;\n flex: none;\n width: 100%; } }\n #optimole-app .hero {\n -ms-flex-align: stretch;\n align-items: stretch;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: justify;\n justify-content: space-between; }\n #optimole-app .hero .navbar {\n background: none; }\n #optimole-app .hero .tabs ul {\n border-bottom: none; }\n #optimole-app .hero.is-white {\n background-color: white;\n color: #0a0a0a; }\n #optimole-app .hero.is-white a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-white strong {\n color: inherit; }\n #optimole-app .hero.is-white .title {\n color: #0a0a0a; }\n #optimole-app .hero.is-white .subtitle {\n color: rgba(10, 10, 10, 0.9); }\n #optimole-app .hero.is-white .subtitle a:not(.button),\n #optimole-app .hero.is-white .subtitle strong {\n color: #0a0a0a; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-white .navbar-menu {\n background-color: white; } }\n #optimole-app .hero.is-white .navbar-item,\n #optimole-app .hero.is-white .navbar-link {\n color: rgba(10, 10, 10, 0.7); }\n #optimole-app .hero.is-white a.navbar-item:hover, #optimole-app .hero.is-white a.navbar-item.is-active,\n #optimole-app .hero.is-white .navbar-link:hover,\n #optimole-app .hero.is-white .navbar-link.is-active {\n background-color: #f2f2f2;\n color: #0a0a0a; }\n #optimole-app .hero.is-white .tabs a {\n color: #0a0a0a;\n opacity: 0.9; }\n #optimole-app .hero.is-white .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-white .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-white .tabs.is-boxed a, #optimole-app .hero.is-white .tabs.is-toggle a {\n color: #0a0a0a; }\n #optimole-app .hero.is-white .tabs.is-boxed a:hover, #optimole-app .hero.is-white .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-white .tabs.is-boxed li.is-active a, #optimole-app .hero.is-white .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-white .tabs.is-toggle li.is-active a, #optimole-app .hero.is-white .tabs.is-toggle li.is-active a:hover {\n background-color: #0a0a0a;\n border-color: #0a0a0a;\n color: white; }\n #optimole-app .hero.is-white.is-bold {\n background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-white.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } }\n #optimole-app .hero.is-black {\n background-color: #0a0a0a;\n color: white; }\n #optimole-app .hero.is-black a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-black strong {\n color: inherit; }\n #optimole-app .hero.is-black .title {\n color: white; }\n #optimole-app .hero.is-black .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-black .subtitle a:not(.button),\n #optimole-app .hero.is-black .subtitle strong {\n color: white; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-black .navbar-menu {\n background-color: #0a0a0a; } }\n #optimole-app .hero.is-black .navbar-item,\n #optimole-app .hero.is-black .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-black a.navbar-item:hover, #optimole-app .hero.is-black a.navbar-item.is-active,\n #optimole-app .hero.is-black .navbar-link:hover,\n #optimole-app .hero.is-black .navbar-link.is-active {\n background-color: black;\n color: white; }\n #optimole-app .hero.is-black .tabs a {\n color: white;\n opacity: 0.9; }\n #optimole-app .hero.is-black .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-black .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-black .tabs.is-boxed a, #optimole-app .hero.is-black .tabs.is-toggle a {\n color: white; }\n #optimole-app .hero.is-black .tabs.is-boxed a:hover, #optimole-app .hero.is-black .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-black .tabs.is-boxed li.is-active a, #optimole-app .hero.is-black .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-black .tabs.is-toggle li.is-active a, #optimole-app .hero.is-black .tabs.is-toggle li.is-active a:hover {\n background-color: white;\n border-color: white;\n color: #0a0a0a; }\n #optimole-app .hero.is-black.is-bold {\n background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-black.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }\n #optimole-app .hero.is-light {\n background-color: whitesmoke;\n color: #363636; }\n #optimole-app .hero.is-light a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-light strong {\n color: inherit; }\n #optimole-app .hero.is-light .title {\n color: #363636; }\n #optimole-app .hero.is-light .subtitle {\n color: rgba(54, 54, 54, 0.9); }\n #optimole-app .hero.is-light .subtitle a:not(.button),\n #optimole-app .hero.is-light .subtitle strong {\n color: #363636; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-light .navbar-menu {\n background-color: whitesmoke; } }\n #optimole-app .hero.is-light .navbar-item,\n #optimole-app .hero.is-light .navbar-link {\n color: rgba(54, 54, 54, 0.7); }\n #optimole-app .hero.is-light a.navbar-item:hover, #optimole-app .hero.is-light a.navbar-item.is-active,\n #optimole-app .hero.is-light .navbar-link:hover,\n #optimole-app .hero.is-light .navbar-link.is-active {\n background-color: #e8e8e8;\n color: #363636; }\n #optimole-app .hero.is-light .tabs a {\n color: #363636;\n opacity: 0.9; }\n #optimole-app .hero.is-light .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-light .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-light .tabs.is-boxed a, #optimole-app .hero.is-light .tabs.is-toggle a {\n color: #363636; }\n #optimole-app .hero.is-light .tabs.is-boxed a:hover, #optimole-app .hero.is-light .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-light .tabs.is-boxed li.is-active a, #optimole-app .hero.is-light .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-light .tabs.is-toggle li.is-active a, #optimole-app .hero.is-light .tabs.is-toggle li.is-active a:hover {\n background-color: #363636;\n border-color: #363636;\n color: whitesmoke; }\n #optimole-app .hero.is-light.is-bold {\n background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-light.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } }\n #optimole-app .hero.is-dark {\n background-color: #363636;\n color: whitesmoke; }\n #optimole-app .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-dark strong {\n color: inherit; }\n #optimole-app .hero.is-dark .title {\n color: whitesmoke; }\n #optimole-app .hero.is-dark .subtitle {\n color: rgba(245, 245, 245, 0.9); }\n #optimole-app .hero.is-dark .subtitle a:not(.button),\n #optimole-app .hero.is-dark .subtitle strong {\n color: whitesmoke; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-dark .navbar-menu {\n background-color: #363636; } }\n #optimole-app .hero.is-dark .navbar-item,\n #optimole-app .hero.is-dark .navbar-link {\n color: rgba(245, 245, 245, 0.7); }\n #optimole-app .hero.is-dark a.navbar-item:hover, #optimole-app .hero.is-dark a.navbar-item.is-active,\n #optimole-app .hero.is-dark .navbar-link:hover,\n #optimole-app .hero.is-dark .navbar-link.is-active {\n background-color: #292929;\n color: whitesmoke; }\n #optimole-app .hero.is-dark .tabs a {\n color: whitesmoke;\n opacity: 0.9; }\n #optimole-app .hero.is-dark .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-dark .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-dark .tabs.is-boxed a, #optimole-app .hero.is-dark .tabs.is-toggle a {\n color: whitesmoke; }\n #optimole-app .hero.is-dark .tabs.is-boxed a:hover, #optimole-app .hero.is-dark .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-dark .tabs.is-boxed li.is-active a, #optimole-app .hero.is-dark .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-dark .tabs.is-toggle li.is-active a, #optimole-app .hero.is-dark .tabs.is-toggle li.is-active a:hover {\n background-color: whitesmoke;\n border-color: whitesmoke;\n color: #363636; }\n #optimole-app .hero.is-dark.is-bold {\n background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-dark.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } }\n #optimole-app .hero.is-primary {\n background-color: #EF686B;\n color: #fff; }\n #optimole-app .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-primary strong {\n color: inherit; }\n #optimole-app .hero.is-primary .title {\n color: #fff; }\n #optimole-app .hero.is-primary .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-primary .subtitle a:not(.button),\n #optimole-app .hero.is-primary .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-primary .navbar-menu {\n background-color: #EF686B; } }\n #optimole-app .hero.is-primary .navbar-item,\n #optimole-app .hero.is-primary .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-primary a.navbar-item:hover, #optimole-app .hero.is-primary a.navbar-item.is-active,\n #optimole-app .hero.is-primary .navbar-link:hover,\n #optimole-app .hero.is-primary .navbar-link.is-active {\n background-color: #ed5154;\n color: #fff; }\n #optimole-app .hero.is-primary .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-primary .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-primary .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-primary .tabs.is-boxed a, #optimole-app .hero.is-primary .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-primary .tabs.is-boxed a:hover, #optimole-app .hero.is-primary .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-primary .tabs.is-boxed li.is-active a, #optimole-app .hero.is-primary .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-primary .tabs.is-toggle li.is-active a, #optimole-app .hero.is-primary .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #EF686B; }\n #optimole-app .hero.is-primary.is-bold {\n background-image: linear-gradient(141deg, #f52f54 0%, #EF686B 71%, #f58d7c 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-primary.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #f52f54 0%, #EF686B 71%, #f58d7c 100%); } }\n #optimole-app .hero.is-link {\n background-color: #3273dc;\n color: #fff; }\n #optimole-app .hero.is-link a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-link strong {\n color: inherit; }\n #optimole-app .hero.is-link .title {\n color: #fff; }\n #optimole-app .hero.is-link .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-link .subtitle a:not(.button),\n #optimole-app .hero.is-link .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-link .navbar-menu {\n background-color: #3273dc; } }\n #optimole-app .hero.is-link .navbar-item,\n #optimole-app .hero.is-link .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-link a.navbar-item:hover, #optimole-app .hero.is-link a.navbar-item.is-active,\n #optimole-app .hero.is-link .navbar-link:hover,\n #optimole-app .hero.is-link .navbar-link.is-active {\n background-color: #2366d1;\n color: #fff; }\n #optimole-app .hero.is-link .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-link .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-link .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-link .tabs.is-boxed a, #optimole-app .hero.is-link .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-link .tabs.is-boxed a:hover, #optimole-app .hero.is-link .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-link .tabs.is-boxed li.is-active a, #optimole-app .hero.is-link .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-link .tabs.is-toggle li.is-active a, #optimole-app .hero.is-link .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #3273dc; }\n #optimole-app .hero.is-link.is-bold {\n background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-link.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); } }\n #optimole-app .hero.is-info {\n background-color: #5180C1;\n color: #fff; }\n #optimole-app .hero.is-info a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-info strong {\n color: inherit; }\n #optimole-app .hero.is-info .title {\n color: #fff; }\n #optimole-app .hero.is-info .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-info .subtitle a:not(.button),\n #optimole-app .hero.is-info .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-info .navbar-menu {\n background-color: #5180C1; } }\n #optimole-app .hero.is-info .navbar-item,\n #optimole-app .hero.is-info .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-info a.navbar-item:hover, #optimole-app .hero.is-info a.navbar-item.is-active,\n #optimole-app .hero.is-info .navbar-link:hover,\n #optimole-app .hero.is-info .navbar-link.is-active {\n background-color: #4173b7;\n color: #fff; }\n #optimole-app .hero.is-info .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-info .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-info .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-info .tabs.is-boxed a, #optimole-app .hero.is-info .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-info .tabs.is-boxed a:hover, #optimole-app .hero.is-info .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-info .tabs.is-boxed li.is-active a, #optimole-app .hero.is-info .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-info .tabs.is-toggle li.is-active a, #optimole-app .hero.is-info .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #5180C1; }\n #optimole-app .hero.is-info.is-bold {\n background-image: linear-gradient(141deg, #2f7bb0 0%, #5180C1 71%, #5f7acd 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-info.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #2f7bb0 0%, #5180C1 71%, #5f7acd 100%); } }\n #optimole-app .hero.is-success {\n background-color: #34a85e;\n color: #fff; }\n #optimole-app .hero.is-success a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-success strong {\n color: inherit; }\n #optimole-app .hero.is-success .title {\n color: #fff; }\n #optimole-app .hero.is-success .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-success .subtitle a:not(.button),\n #optimole-app .hero.is-success .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-success .navbar-menu {\n background-color: #34a85e; } }\n #optimole-app .hero.is-success .navbar-item,\n #optimole-app .hero.is-success .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-success a.navbar-item:hover, #optimole-app .hero.is-success a.navbar-item.is-active,\n #optimole-app .hero.is-success .navbar-link:hover,\n #optimole-app .hero.is-success .navbar-link.is-active {\n background-color: #2e9553;\n color: #fff; }\n #optimole-app .hero.is-success .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-success .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-success .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-success .tabs.is-boxed a, #optimole-app .hero.is-success .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-success .tabs.is-boxed a:hover, #optimole-app .hero.is-success .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-success .tabs.is-boxed li.is-active a, #optimole-app .hero.is-success .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-success .tabs.is-toggle li.is-active a, #optimole-app .hero.is-success .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #34a85e; }\n #optimole-app .hero.is-success.is-bold {\n background-image: linear-gradient(141deg, #1f8a34 0%, #34a85e 71%, #34c27f 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-success.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #1f8a34 0%, #34a85e 71%, #34c27f 100%); } }\n #optimole-app .hero.is-warning {\n background-color: #ffdd57;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-warning strong {\n color: inherit; }\n #optimole-app .hero.is-warning .title {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning .subtitle {\n color: rgba(0, 0, 0, 0.9); }\n #optimole-app .hero.is-warning .subtitle a:not(.button),\n #optimole-app .hero.is-warning .subtitle strong {\n color: rgba(0, 0, 0, 0.7); }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-warning .navbar-menu {\n background-color: #ffdd57; } }\n #optimole-app .hero.is-warning .navbar-item,\n #optimole-app .hero.is-warning .navbar-link {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning a.navbar-item:hover, #optimole-app .hero.is-warning a.navbar-item.is-active,\n #optimole-app .hero.is-warning .navbar-link:hover,\n #optimole-app .hero.is-warning .navbar-link.is-active {\n background-color: #ffd83d;\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning .tabs a {\n color: rgba(0, 0, 0, 0.7);\n opacity: 0.9; }\n #optimole-app .hero.is-warning .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-warning .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-warning .tabs.is-boxed a, #optimole-app .hero.is-warning .tabs.is-toggle a {\n color: rgba(0, 0, 0, 0.7); }\n #optimole-app .hero.is-warning .tabs.is-boxed a:hover, #optimole-app .hero.is-warning .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-warning .tabs.is-boxed li.is-active a, #optimole-app .hero.is-warning .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-warning .tabs.is-toggle li.is-active a, #optimole-app .hero.is-warning .tabs.is-toggle li.is-active a:hover {\n background-color: rgba(0, 0, 0, 0.7);\n border-color: rgba(0, 0, 0, 0.7);\n color: #ffdd57; }\n #optimole-app .hero.is-warning.is-bold {\n background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-warning.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } }\n #optimole-app .hero.is-danger {\n background-color: #D54222;\n color: #fff; }\n #optimole-app .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag),\n #optimole-app .hero.is-danger strong {\n color: inherit; }\n #optimole-app .hero.is-danger .title {\n color: #fff; }\n #optimole-app .hero.is-danger .subtitle {\n color: rgba(255, 255, 255, 0.9); }\n #optimole-app .hero.is-danger .subtitle a:not(.button),\n #optimole-app .hero.is-danger .subtitle strong {\n color: #fff; }\n @media screen and (max-width: 1087px) {\n #optimole-app .hero.is-danger .navbar-menu {\n background-color: #D54222; } }\n #optimole-app .hero.is-danger .navbar-item,\n #optimole-app .hero.is-danger .navbar-link {\n color: rgba(255, 255, 255, 0.7); }\n #optimole-app .hero.is-danger a.navbar-item:hover, #optimole-app .hero.is-danger a.navbar-item.is-active,\n #optimole-app .hero.is-danger .navbar-link:hover,\n #optimole-app .hero.is-danger .navbar-link.is-active {\n background-color: #bf3b1e;\n color: #fff; }\n #optimole-app .hero.is-danger .tabs a {\n color: #fff;\n opacity: 0.9; }\n #optimole-app .hero.is-danger .tabs a:hover {\n opacity: 1; }\n #optimole-app .hero.is-danger .tabs li.is-active a {\n opacity: 1; }\n #optimole-app .hero.is-danger .tabs.is-boxed a, #optimole-app .hero.is-danger .tabs.is-toggle a {\n color: #fff; }\n #optimole-app .hero.is-danger .tabs.is-boxed a:hover, #optimole-app .hero.is-danger .tabs.is-toggle a:hover {\n background-color: rgba(10, 10, 10, 0.1); }\n #optimole-app .hero.is-danger .tabs.is-boxed li.is-active a, #optimole-app .hero.is-danger .tabs.is-boxed li.is-active a:hover, #optimole-app .hero.is-danger .tabs.is-toggle li.is-active a, #optimole-app .hero.is-danger .tabs.is-toggle li.is-active a:hover {\n background-color: #fff;\n border-color: #fff;\n color: #D54222; }\n #optimole-app .hero.is-danger.is-bold {\n background-image: linear-gradient(141deg, #b31311 0%, #D54222 71%, #e46c2c 100%); }\n @media screen and (max-width: 768px) {\n #optimole-app .hero.is-danger.is-bold .navbar-menu {\n background-image: linear-gradient(141deg, #b31311 0%, #D54222 71%, #e46c2c 100%); } }\n #optimole-app .hero.is-small .hero-body {\n padding-bottom: 1.5rem;\n padding-top: 1.5rem; }\n @media screen and (min-width: 769px), print {\n #optimole-app .hero.is-medium .hero-body {\n padding-bottom: 9rem;\n padding-top: 9rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .hero.is-large .hero-body {\n padding-bottom: 18rem;\n padding-top: 18rem; } }\n #optimole-app .hero.is-halfheight .hero-body, #optimole-app .hero.is-fullheight .hero-body, #optimole-app .hero.is-fullheight-with-navbar .hero-body {\n -ms-flex-align: center;\n align-items: center;\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .hero.is-halfheight .hero-body > .container, #optimole-app .hero.is-fullheight .hero-body > .container, #optimole-app .hero.is-fullheight-with-navbar .hero-body > .container {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n #optimole-app .hero.is-halfheight {\n min-height: 50vh; }\n #optimole-app .hero.is-fullheight {\n min-height: 100vh; }\n #optimole-app .hero-video {\n overflow: hidden; }\n #optimole-app .hero-video video {\n left: 50%;\n min-height: 100%;\n min-width: 100%;\n position: absolute;\n top: 50%;\n transform: translate3d(-50%, -50%, 0); }\n #optimole-app .hero-video.is-transparent {\n opacity: 0.3; }\n @media screen and (max-width: 768px) {\n #optimole-app .hero-video {\n display: none; } }\n #optimole-app .hero-buttons {\n margin-top: 1.5rem; }\n @media screen and (max-width: 768px) {\n #optimole-app .hero-buttons .button {\n display: -ms-flexbox;\n display: flex; }\n #optimole-app .hero-buttons .button:not(:last-child) {\n margin-bottom: 0.75rem; } }\n @media screen and (min-width: 769px), print {\n #optimole-app .hero-buttons {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center; }\n #optimole-app .hero-buttons .button:not(:last-child) {\n margin-right: 1.5rem; } }\n #optimole-app .hero-head,\n #optimole-app .hero-foot {\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n #optimole-app .hero-body {\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n padding: 3rem 1.5rem; }\n #optimole-app .section {\n padding: 3rem 1.5rem; }\n @media screen and (min-width: 1088px) {\n #optimole-app .section.is-medium {\n padding: 9rem 1.5rem; }\n #optimole-app .section.is-large {\n padding: 18rem 1.5rem; } }\n #optimole-app .footer {\n background-color: #fafafa;\n padding: 3rem 1.5rem 6rem; }\n #optimole-app .card {\n transition: all 750ms ease-in-out;\n border: 0;\n border-radius: .1875rem;\n box-shadow: 0 1px 15px 1px rgba(39, 39, 39, 0.1); }\n #optimole-app .logo {\n margin-bottom: 10px; }\n #optimole-app .logo img {\n max-width: 180px;\n margin: 0 auto; }\n #optimole-app .vue-js-switch {\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center; }\n #optimole-app .api-key-control {\n padding: 0; }\n #optimole-app .is-vertical-center {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center; }\n #optimole-app .api-key-field .button.is-danger {\n padding-left: 20px;\n padding-right: 20px; }\n #optimole-app .api-key-label {\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n margin: 0.5em 10px 0.5em 0;\n font-size: 1em; }\n #optimole-app .header {\n padding: 0 1.5rem 0; }\n #optimole-app .header.level {\n margin-bottom: 0; }\n #optimole-app .account img {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px; }\n #optimole-app .account .label {\n margin-bottom: 0; }\n #optimole-app .optimized-images table td, #optimole-app .optimized-images table th {\n vertical-align: middle; }\n #optimole-app .media-diff {\n position: relative;\n margin: 0 auto; }\n #optimole-app .media-diff video, #optimole-app .media-diff img {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%; }\n #optimole-app .origin-wrapper {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n z-index: 1;\n transform: translateZ(0);\n will-change: width; }\n #optimole-app .handle {\n position: absolute;\n top: 0;\n bottom: 0;\n color: rgba(255, 255, 255, 0.8);\n background-color: rgba(255, 255, 255, 0.8);\n width: 2px;\n cursor: ew-resize;\n transform: translateX(-50%) translateZ(0);\n z-index: 2;\n will-change: left;\n left: 200px; }\n #optimole-app .cursor {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateZ(0); }\n #optimole-app .cursor .circle {\n background-color: rgba(255, 255, 255, 0.8);\n width: 24px;\n height: 24px;\n border-radius: 50%; }\n #optimole-app .no-padding-right {\n padding-right: 0px !important; }\n #optimole-app #filters-list .list {\n border: none;\n background: none;\n box-shadow: none; }\n #optimole-app #filters-list .list-item {\n border: none; }\n #optimole-app #filters-list .exclusion-filter .tag.is-link strong {\n white-space: initial; }\n #optimole-app #filters-list .exclusion-filter .tag.is-link i {\n margin-right: 5px; }\n #optimole-app #filters-list .exclusion-filter .tag.is-link {\n text-decoration: none;\n width: 80%;\n height: auto;\n min-height: 2em;\n -ms-flex-pack: left;\n justify-content: left; }\n\n.fade-enter-active, .fade-leave-active {\n transition: opacity .5s; }\n\n.fade-enter, .fade-leave-to {\n opacity: 0; }\n\n.media_page_optimole #wpbody-content > * {\n display: none !important; }\n\n.media_page_optimole #wpbody-content > #optimole-app {\n display: block !important; }\n\n#optimole-app img.optml-image {\n float: left;\n max-width: 100px;\n width: auto;\n margin: auto; }\n\n#optimole-app img.optml-image-watermark {\n width: 50px; }\n\n.optml-ratio-feedback .emoji {\n font-size: 1.5em; }\n\n.optml-ratio-feedback {\n float: right;\n padding-right: 20px; }\n\n.optml-image-heading {\n text-align: left; }\n\nth.optml-image-ratio-heading {\n text-align: right !important;\n font-size: 150%; }\n\n@media screen and (max-width: 768px) {\n li:not(.is-active) > a > span:not(.icon) {\n visibility: hidden;\n position: absolute; }\n nav.tabs li:not(.is-active) {\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 1;\n flex-shrink: 1; }\n .tabs .icon {\n margin-left: 0.5em; } }\n\n.tabs li {\n transition: flex-grow 1s ease;\n transition: flex-grow 1s ease, -ms-flex-positive 1s ease; }\n\n#optimole-app .tabs a {\n margin-bottom: -4px; }\n\n#optimole-app .optml-upgrade {\n min-width: 200px; }\n\n#optimole-app .is-tab.no-images {\n min-height: 400px; }\n\n#optimole-app .is-tab {\n min-height: 700px; }\n\n.optml-tabs {\n position: relative; }\n\n.optml-tabs .optml-conflicts-tabs {\n position: absolute;\n right: 0;\n top: 0; }\n\n#optml-loader {\n min-height: 400px;\n margin-top: 150px; }\n\n.slide-fade-enter-active {\n transition: all .3s ease; }\n\n.slide-fade-leave-active {\n transition: all 0.8s cubic-bezier(1, 0.5, 0.8, 1); }\n\n.slide-fade-enter, .slide-fade-leave-to {\n transform: translateX(10px);\n opacity: 0; }\n\n#optml-progress-bar.progress.optml-progres-0:indeterminate {\n background-image: linear-gradient(to right, #5180C1 5%, #dbdbdb 5%); }\n\n#optml-progress-bar.progress.optml-progres-1:indeterminate {\n background-image: linear-gradient(to right, #5180C1 10%, #dbdbdb 10%); }\n\n#optml-progress-bar.progress.optml-progres-2:indeterminate {\n background-image: linear-gradient(to right, #5180C1 20%, #dbdbdb 20%); }\n\n#optml-progress-bar.progress.optml-progres-3:indeterminate {\n background-image: linear-gradient(to right, #5180C1 30%, #dbdbdb 30%); }\n\n#optml-progress-bar.progress.optml-progres-4:indeterminate {\n background-image: linear-gradient(to right, #5180C1 40%, #dbdbdb 40%); }\n\n#optml-progress-bar.progress.optml-progres-5:indeterminate {\n background-image: linear-gradient(to right, #5180C1 50%, #dbdbdb 50%); }\n\n#optml-progress-bar.progress.optml-progres-6:indeterminate {\n background-image: linear-gradient(to right, #5180C1 60%, #dbdbdb 60%); }\n\n#optml-progress-bar.progress.optml-progres-7:indeterminate {\n background-image: linear-gradient(to right, #5180C1 70%, #dbdbdb 70%); }\n\n#optml-progress-bar.progress.optml-progres-8:indeterminate {\n background-image: linear-gradient(to right, #5180C1 80%, #dbdbdb 80%); }\n\n#optml-progress-bar.progress.optml-progres-9:indeterminate {\n background-image: linear-gradient(to right, #5180C1 90%, #dbdbdb 90%); }\n\n.notification .dashicons-external {\n text-decoration: none;\n font-size: 18px; }\n',""])},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}var i=n(15),a=o(i),r=n(20),s=o(r),l=n(25),p=o(l),c=n(32),d=o(c),m=n(37),u=o(m),f=n(4),h=o(f),b=n(45),v=o(b),g=n(5),x=o(g);t.exports={name:"app",data:function(){return{strings:optimoleDashboardApp.strings,home:optimoleDashboardApp.home_url,remove_images:"yes"===optimoleDashboardApp.remove_latest_images,fetchStatus:!1,step_no:0,timer:0,max_time:25,loading_percent:0,tab:"dashboard"}},computed:{conflictCount:function(){return this.$store.state.conflicts.count||0},is_connected:function(){return this.$store.state.connected},is_loaded:function(){return this.$store.state.is_loaded}},components:{AppHeader:a.default,Options:v.default,Watermarks:x.default,ConnectLayout:p.default,ApiKeyForm:h.default,CdnDetails:s.default,Conflicts:u.default,LastImages:d.default},watch:{is_connected:function(t){console.log(t),t&&!this.is_loaded&&this.triggerLoading()}},mounted:function(){var t=this;this.$store.state.connected&&(this.$store.dispatch("retrieveOptimizedImages",{waitTime:0,component:null}),this.$store.dispatch("retrieveConflicts",{waitTime:0,component:null}),t.fetchStatus=!0)},methods:{changeTab:function(t){this.tab=t},getProgressMessage:function(){var t="";return 0===this.step_no&&(t=this.strings.options_strings.connect_step_0),1===this.step_no&&(t=this.strings.options_strings.connect_step_1),2===this.step_no&&(t=this.strings.options_strings.connect_step_2),3===this.step_no&&(t=this.strings.options_strings.connect_step_3),t+" ("+this.loading_percent+"%)"},doLoading:function(){if(++this.timer>=this.max_time)return this.$store.commit("toggleIsServiceLoaded",!0),this.timer=0,this.step_no=0,void(this.loading_percent=0);this.loading_percent=Math.floor(this.timer/this.max_time*100),this.loading_percent>30*(this.step_no+1)&&this.step_no++,this.timer<this.max_time&&this.triggerLoading()},triggerLoading:function(){var t=this;setTimeout(function(){t.doLoading()},1e3)}}}},function(t,e,n){var o,i;n(16),o=n(18),i=n(19),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(17);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\t@media ( min-width: 769px ) {\n\t\t#optimole-app hr[_v-316d7377] {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"app-header",data:function(){return{logo:optimoleDashboardApp.assets_url+"img/logo.png",strings:optimoleDashboardApp.strings}},computed:{connected:function(){return this.$store.state.connected}}}},function(t,e){t.exports='\n\t<div _v-316d7377="">\n\t\t<div class="header has-text-centered level" _v-316d7377="">\n\t\t\t\n\t\t\t<div class="level-left" _v-316d7377="">\n\t\t\t\t<a class="logo level-item" href="https://optimole.com" target="_blank" _v-316d7377="">\n\t\t\t\t\t<figure class="image is-96x96 is-hidden-touch" _v-316d7377="">\n\t\t\t\t\t\t<img :src="logo" :alt="strings.optimole + \' \' + strings.service_details" _v-316d7377="">\n\t\t\t\t\t</figure>\n\t\t\t\t\t<figure class="image is-48x48 is-hidden-desktop" _v-316d7377="">\n\t\t\t\t\t\t<img :src="logo" :alt="strings.optimole + \' \' + strings.service_details" _v-316d7377="">\n\t\t\t\t\t</figure>\n\t\t\t\t</a>\n\t\t\t\t<h3 class="has-text-centered has-text-grey-dark is-size-5 is-size-4-widescreen is-size-6-touch level-item" _v-316d7377="">\n\t\t\t\t\t<span class="has-text-weight-semibold" _v-316d7377="">\n\t\t\t\t\tOptiMole - {{strings.service_details}}\n\t\t\t\t\t</span>\n\t\t\t\t</h3>\n\t\t\t</div>\n\t\t\t<div class="level-right" _v-316d7377="">\n\t\t\t\t<div class="tags has-addons level-item" _v-316d7377="">\n\t\t\t\t\t<span class="tag is-dark" _v-316d7377="">{{strings.status}}</span>\n\t\t\t\t\t<span v-if="connected" class="tag is-success" _v-316d7377="">{{strings.connected}}</span>\n\t\t\t\t\t<span v-else="" class="tag is-danger" _v-316d7377="">{{strings.not_connected}}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t</div>\n\t\t<hr _v-316d7377="">\n\t</div>\n'},function(t,e,n){var o,i;n(21),o=n(23),i=n(24),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(22);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\t#optimole-app .label[_v-7f71b554] {\n\t\tmargin-top: 0;\n\t}\n\t.optml-refresh-wrapper i.dashicons[_v-7f71b554]{\n\t\twidth:auto;\n\t\theight:auto;\n\t}\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"cdn-details",data:function(){return{strings:optimoleDashboardApp.strings}},computed:{userData:function(){return this.$store.state.userData}},methods:{computedPercentage:function(){return(this.userData.usage/this.userData.quota*100).toFixed(2)},computedPercentageVisitors:function(){return(this.userData.visitors/this.userData.visitors_limit*100).toFixed(2)},requestUpdate:function(){this.$store.dispatch("requestStatsUpdate",{waitTime:0,component:null})}}}},function(t,e){t.exports='\n\t<div class="cdn-details" _v-7f71b554="">\n\t\t<hr _v-7f71b554="">\n\t\t<div class="account level has-text-centered" _v-7f71b554="">\n\t\t\t<div class="level-left" _v-7f71b554="">\n\t\t\t\t<span class="label level-item" _v-7f71b554="">{{strings.logged_in_as}}:</span>\n\t\t\t\t<p class="details level-item tags has-addons" _v-7f71b554="">\n\t\t\t\t\t<span class="tag is-light" _v-7f71b554="">{{userData.display_name}}</span>\n\t\t\t\t\t<span class="tag is-paddingless" _v-7f71b554=""><img :src="userData.picture" class="image is-24x24 is-rounded" :alt="userData.display_name" _v-7f71b554=""></span>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t\t<div class="level-right" _v-7f71b554="">\n\t\t\t\t<span class="label level-item" _v-7f71b554="">{{strings.private_cdn_url}}:</span>\n\t\t\t\t<p class="details level-item tag is-light" _v-7f71b554="">{{userData.cdn_key}}.i.optimole.com</p>\n\t\t\t</div>\n\t\t</div>\n\t\t<hr _v-7f71b554="">\n\n\t\t<div v-if="this.userData.visitors_limit && parseInt( this.userData.visitors_limit ) > 0" class="level stats" _v-7f71b554="">\n\t\t\t<div class="level-left" _v-7f71b554="">\n\t\t\t\t<div class="level-item" _v-7f71b554="">\n\t\t\t\t\t<div class="tags has-addons" _v-7f71b554="">\n\t\t\t\t\t\t<span class="tag is-info" _v-7f71b554="">{{strings.usage}}:</span>\n\t\t\t\t\t\t<span class="tag" _v-7f71b554="">{{this.userData.visitors_pretty}} </span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<h4 class="level-item is-size-5 is-marginless has-text-grey" _v-7f71b554="">\n\t\t\t\t{{computedPercentageVisitors()}}%\n\t\t\t</h4>\n\t\t\t<div class="level-right" _v-7f71b554="">\n\t\t\t\t<div class="level-item" _v-7f71b554="">\n\t\t\t\t\t<div class="tags has-addons" _v-7f71b554="">\n\t\t\t\t\t\t<span class="tag is-info" _v-7f71b554="">{{strings.quota}}:</span>\n\t\t\t\t\t\t<span class="tag" _v-7f71b554="">{{this.userData.visitors_limit_pretty}} (<a href="https://docs.optimole.com/article/1134-how-optimole-counts-the-number-of-visitors" target="_blank" _v-7f71b554="">?</a>)</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-else="" class="level stats" _v-7f71b554="">\n\t\t\t<div class="level-left" _v-7f71b554="">\n\t\t\t\t<div class="level-item" _v-7f71b554="">\n\t\t\t\t\t<div class="tags has-addons" _v-7f71b554="">\n\t\t\t\t\t\t<span class="tag is-info" _v-7f71b554="">{{strings.usage}}:</span>\n\t\t\t\t\t\t<span class="tag" _v-7f71b554="">{{this.userData.usage_pretty}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<h4 class="level-item is-size-5 is-marginless has-text-grey" _v-7f71b554="">\n\t\t\t\t{{computedPercentage()}}%\n\t\t\t</h4>\n\t\t\t<div class="level-right" _v-7f71b554="">\n\t\t\t\t<div class="level-item" _v-7f71b554="">\n\t\t\t\t\t<div class="tags has-addons" _v-7f71b554="">\n\t\t\t\t\t\t<span class="tag is-info" _v-7f71b554="">{{strings.quota}}:</span>\n\t\t\t\t\t\t<span class="tag" _v-7f71b554="">{{this.userData.quota_pretty}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t\n\t\t<div class="level-right" _v-7f71b554="">\n\t\t\t\n\t\t\t<div class="level-item optml-refresh-wrapper" _v-7f71b554="">\n\t\t\t<a class="button is-small is-warning" v-if="this.$store.state.loading" _v-7f71b554=""><span class="icon" _v-7f71b554=""><i class="dashicons dashicons-backup is-size-6" _v-7f71b554=""></i></span> <span _v-7f71b554="">{{strings.updating_stats_cta}}</span>\n\t\t\t</a>\n\t\t\t<a class="button is-small is-info" v-else="" v-on:click="requestUpdate" _v-7f71b554=""><span class="icon" _v-7f71b554=""><i class="dashicons dashicons-image-rotate is-size-6" _v-7f71b554=""></i></span> <span _v-7f71b554="">{{strings.refresh_stats_cta}}</span>\n\t\t\t</a>\n\t\t\t</div>\n\t\t</div>\n\t\t<hr _v-7f71b554="">\n\t\t<progress v-if="this.userData.visitors_limit && parseInt( this.userData.visitors_limit ) > 0" class="progress is-success" :value="this.userData.visitors" :max="this.userData.visitors_limit" _v-7f71b554="">60%</progress>\n\t\t<progress v-else="" class="progress is-success" :value="this.userData.usage" :max="this.userData.quota" _v-7f71b554="">60%</progress>\n\n\t</div>\n'},function(t,e,n){var o,i;n(26),o=n(28),i=n(31),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(27);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\tinput[_v-398fcc2b], .notification .delete[_v-398fcc2b], button[_v-398fcc2b] {\n\t\tbox-sizing: border-box !important;\n\t}\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),i=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:"connect-layout",components:{ApiKeyForm:i.default},data:function(){return{email:optimoleDashboardApp.current_user.email,strings:optimoleDashboardApp.strings,showApiKey:!1,error:!1,showRegisterField:!1,from_register:!1}},computed:{isLoading:function(){return this.$store.state.loading},isRestApiWorking:function(){return this.$store.state.apiError}},methods:{toggleApiForm:function(){this.error=!1,this.from_register=!1,this.showApiKey=!this.showApiKey},registerAccount:function(){var t=this;if(!this.showRegisterField)return void(this.showRegisterField=!0);this.error=!1,this.$store.dispatch("registerOptimole",{email:this.email}).then(function(e){"success"===e.code?(t.showApiKey=!0,t.from_register=!0):t.error=!0})}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"api-key-form",data:function(){return{apiKey:this.$store.state.apiKey?this.$store.state.apiKey:"",connected:this.$store.state.connected,strings:optimoleDashboardApp.strings,isLoading:!1}},mounted:function(){},computed:{validKey:function(){return this.$store.state.apiKeyValidity},connectionError:function(){return this.$store.state.connectError},isConnected:function(){return this.$store.state.connected}},methods:{connect:function(){this.$store.dispatch("connectOptimole",{apiKey:this.apiKey})},disconnect:function(){this.apiKey="",this.$store.dispatch("disconnectOptimole",{})}}}},function(t,e){t.exports='\n\t<div>\n\t\t<div class="field has-addons api-key-field">\n\t\t\t<label v-if="isConnected"\n\t\t\t\t\tclass="label api-key-label has-text-grey-dark">{{strings.api_key_placeholder}}:</label>\n\t\t\t<div class="control is-expanded api-key-control">\n\t\t\t\t<input :type="isConnected ? \'password\' : \'text\'" :disabled="isConnected" name="api_key" class="input "\n\t\t\t\t\t\t:class="validKey ? \'\' : \'is-danger\'" :placeholder="strings.api_key_placeholder"\n\t\t\t\t\t\tv-model="apiKey">\n\t\t\t</div>\n\t\t\t<div class="control">\n\t\t\t\t<button v-if="! isConnected" class="button button is-success "\n\t\t\t\t\t\t@click="connect" :class="{ \'is-loading\' : this.$store.state.isConnecting }">\n\t\t\t\t\t<span class="icon"><i class="dashicons dashicons-admin-plugins"></i></span>\n\t\t\t\t\t<span>{{strings.connect_btn}}</span>\n\t\t\t\t</button>\n\t\t\t\t<button v-else class="button is-danger " @click="disconnect"\n\t\t\t\t\t\t:class="{ \'is-loading\' : this.$store.state.isConnecting }">\n\t\t\t\t\t<span class="icon"><i class="dashicons dashicons-dismiss"></i></span>\n\t\t\t\t\t<span>{{strings.disconnect_btn}}</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t\t<p v-if="! validKey" class="help is-danger">\n\t\t\t{{connectionError}}\n\t\t</p>\n\t</div>\n'},function(t,e){t.exports='\n\t<section class="is-clearfix" _v-398fcc2b="">\n\t\t<nav class="breadcrumb" aria-label="breadcrumbs" v-if="showApiKey" _v-398fcc2b="">\n\t\t\t<ul _v-398fcc2b="">\n\t\t\t\t<li _v-398fcc2b=""><a @click="toggleApiForm" href="#" _v-398fcc2b="">{{strings.back_to_register}}</a></li>\n\t\t\t\t<li class="is-active is-marginless" v-if="showApiKey" _v-398fcc2b=""><a href="#" aria-current="page" _v-398fcc2b="">{{strings.back_to_connect}}</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t\t<div class="notification is-danger" v-if="isRestApiWorking" v-html="strings.notice_api_not_working" _v-398fcc2b=""></div>\n\t\t<div class="section" v-if="showApiKey" _v-398fcc2b="">\n\t\t\t<div class="notification is-success" v-if="from_register" _v-398fcc2b="">\n\t\t\t\t{{strings.notification_message_register}}\n\t\t\t</div>\n\t\t\t<api-key-form _v-398fcc2b=""></api-key-form>\n\t\t\t<hr _v-398fcc2b="">\n\t\t\t<div class="columns" _v-398fcc2b="">\n\t\t\t\t\n\t\t\t\t<div class="column columns is-marginless is-vcentered " _v-398fcc2b="">\n\t\t\t\t\t\n\t\t\t\t\t<span class="dashicons dashicons-share column is-2 is-size-3 is-paddingless" _v-398fcc2b=""></span>\n\t\t\t\t\t<div class="is-pulled-left column is-10 is-paddingless" _v-398fcc2b="">\n\t\t\t\t\t\t<p class="title is-size-5 " _v-398fcc2b="">1. {{strings.step_one_api_title}}</p>\n\t\t\t\t\t\t<p class="subtitle is-size-6" v-html="strings.step_one_api_desc" _v-398fcc2b=""></p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="column is columns is-vcentered is-marginless" _v-398fcc2b="">\n\t\t\t\t\t\n\t\t\t\t\t<span class="dashicons dashicons-admin-plugins column is-2 is-size-3 is-paddingless" _v-398fcc2b=""></span>\n\t\t\t\t\t<div class="is-pulled-left column is-10 is-paddingless" _v-398fcc2b="">\n\t\t\t\t\t\t<p class="title is-size-5" _v-398fcc2b="">2. {{strings.step_two_api_title}}</p>\n\t\t\t\t\t\t<p class="subtitle is-size-6" _v-398fcc2b="">{{strings.step_two_api_desc}}</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\n\t\t</div>\n\t\t<div class="columns is-vcentered is-desktop " v-else="" _v-398fcc2b="">\n\t\t\t<div class="column has-text-left is-fluid is-hidden-touch" _v-398fcc2b="">\n\t\t\t\t<div class="hero" _v-398fcc2b="">\n\t\t\t\t\t<div class="hero-body content" _v-398fcc2b="">\n\t\t\t\t\t\t<p class="title" _v-398fcc2b="">{{strings.account_needed_heading}}</p>\n\t\t\t\t\t\t<p class="subtitle " v-html="strings.account_needed_title" _v-398fcc2b=""></p>\n\t\t\t\t\t\t<div class=" is-hidden-touch" _v-398fcc2b="">\n\t\t\t\t\t\t\t<div class="columns is-vcentered " _v-398fcc2b="">\n\t\t\t\t\t\t\t\t<div class=" is-narrow is-hidden-touch column" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t\t<span class="dashicons icon dashicons-format-image is-size-4 " _v-398fcc2b=""></span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="column" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t\t<p class="subtitle column is-size-6 is-vcentered has-text-left" v-html="strings.account_needed_subtitle_1" _v-398fcc2b=""></p>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class="columns is-vcentered" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t<div class=" is-narrow is-hidden-touch column" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t\t<span class="dashicons icon dashicons-plus is-size-4 " _v-398fcc2b=""></span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class="column" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t\t<p class="subtitle column is-size-6 is-vcentered has-text-left" v-html="strings.account_needed_subtitle_2" _v-398fcc2b=""></p>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="column is-4-desktop is-full-touch " _v-398fcc2b="">\n\t\t\t\t<p v-html="strings.account_needed_title" class="is-size-6 has-text-centered is-hidden-desktop" _v-398fcc2b=""></p>\n\t\t\t\t<div class="field " v-show="showRegisterField" _v-398fcc2b="">\n\t\t\t\t\t<label for="optml-email" class="label title is-size-5 is-12" _v-398fcc2b="">{{strings.email_address_label}}\n\t\t\t\t\t\t:</label>\n\t\t\t\t\t<div class="control is-12 is-small has-icons-left " _v-398fcc2b="">\n\t\t\t\t\t\t<input name="optml-email" id="optml-email" class="input is-medium is-fullwidth is-danger" type="email" v-model="email" _v-398fcc2b="">\n\t\t\t\t\t\t<span class="icon is-small is-left dashicons dashicons-email" _v-398fcc2b=""></span>\n\t\t\t\t\t\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<p class="help is-danger" v-if="error" v-html="strings.error_register" _v-398fcc2b=""></p>\n\t\t\t\t</div>\n\t\t\t\t<div class="field " _v-398fcc2b="">\n\t\t\t\t\t<div class="control " _v-398fcc2b="">\n\t\t\t\t\t\t<div class=" has-text-centered-mobile" _v-398fcc2b="">\n\t\t\t\t\t\t\t<button @click="registerAccount" class="button is-fullwidth is-medium is-primary " :class="isLoading ? \'is-loading\' :\'\' " _v-398fcc2b="">\n\t\t\t\t\t\t\t\t<span class="icon dashicons dashicons-admin-users" _v-398fcc2b=""></span>\n\t\t\t\t\t\t\t\t<span _v-398fcc2b="">{{strings.register_btn}}</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<hr _v-398fcc2b="">\n\t\t\t\t\t\t<div class=" is-right has-text-centered-mobile has-text-right" _v-398fcc2b="">\n\t\t\t\t\t\t\t<button @click="toggleApiForm" class="button is-fullwidth is-medium is-outlined is-info" _v-398fcc2b="">\n\t\t\t\t\t\t\t\t<span class="icon dashicons dashicons-admin-network is-small" _v-398fcc2b=""></span>\n\t\t\t\t\t\t\t\t<span _v-398fcc2b="">{{strings.api_exists}}</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</section>\n'},function(t,e,n){var o,i;n(33),o=n(35),i=n(36),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(34);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\t.loader[_v-1dc903c1] {\n\t\tmargin: 0 auto;\n\t\tfont-size: 10em;\n\t\tborder-left: 2px solid #888 !important;\n\t\tborder-bottom: 2px solid #888 !important;\n\t\tmargin-top: 0.2em;\n\t}\n\t\n\t.progress[_v-1dc903c1]::-webkit-progress-value {\n\t\ttransition: width 0.5s ease;\n\t}\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"last-images",data:function(){return{loading:!0,startTime:0,maxTime:20,noImages:!1,home_url:optimoleDashboardApp.home_url,strings:optimoleDashboardApp.strings.latest_images}},props:{status:status},mounted:function(){if(this.$store.state.optimizedImages.length>0)return void(this.loading=!1);this.doProgressBar(),this.$store.dispatch("retrieveOptimizedImages",{waitTime:1e3*this.maxTime,component:this})},watch:{imageData:function(){var t=this;this.imageData.length>0&&(this.startTime=this.maxTime,setTimeout(function(){t.loading=!1},1e3))}},computed:{imageData:function(){return null!==this.$store.state.optimizedImages?this.$store.state.optimizedImages:[]}},methods:{doProgressBar:function(){this.startTime!==this.maxTime&&(this.startTime++,setTimeout(this.doProgressBar,1e3))},compressionRate:function(t,e){var n=(parseFloat(t/e*100)-100).toFixed(1);return n<1?this.strings.same_size:n>1&&n<25?this.strings.small_optimization.replace("{ratio}",n.toString()+"%"):n>25&&n<100?this.strings.medium_optimization.replace("{ratio}",n.toString()+"%"):n>100?this.strings.big_optimization.replace("{ratio}",(Math.floor(n/10+10)/10).toFixed(1).toString()+"x"):void 0}}}},function(t,e){t.exports='\n\t<div _v-1dc903c1="">\n\t\t<div class="optimized-images" v-if="! loading " _v-1dc903c1="">\n\t\t\t<div v-if="!noImages" _v-1dc903c1="">\n\t\t\t\t<h3 class="has-text-centered" _v-1dc903c1="">{{strings.last}} {{strings.optimized_images}}</h3>\n\t\t\t\t<table class="table is-striped is-hoverable is-fullwidth" _v-1dc903c1="">\n\t\t\t\t\t<thead _v-1dc903c1="">\n\t\t\t\t\t<tr _v-1dc903c1="">\n\t\t\t\t\t\t<th class="optml-image-heading" _v-1dc903c1="">{{strings.image}}</th>\n\t\t\t\t\t\t<th class="optml-image-ratio-heading" _v-1dc903c1="">{{strings.compression}}</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody _v-1dc903c1="">\n\t\t\t\t\t<tr v-for="(item, index) in imageData" _v-1dc903c1="">\n\t\t\t\t\t\t<td _v-1dc903c1=""><a :href="item.url" target="_blank" _v-1dc903c1=""><img :src="item.url" class="optml-image" _v-1dc903c1=""></a></td>\n\t\t\t\t\t\t<td _v-1dc903c1=""><p class="optml-ratio-feedback" v-html="compressionRate(item.ex_size_raw, item.new_size_raw)" _v-1dc903c1=""></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-else="" _v-1dc903c1="">\n\t\t\t<iframe width="1" height="1" :src="home_url" style="visibility: hidden" _v-1dc903c1=""></iframe>\n\t\t\t<h6 class="has-text-centered" _v-1dc903c1="">{{strings.loading_latest_images}}</h6>\n\t\t\t<progress class="progress is-large" :value="startTime" :max="maxTime" _v-1dc903c1=""></progress>\n\t\t</div>\n\t\t<table class="table is-striped is-hoverable is-fullwidth" v-if="noImages" _v-1dc903c1="">\n\t\t\t<thead _v-1dc903c1="">\n\t\t\t<tr _v-1dc903c1="">\n\t\t\t\t<th class="optml-image-heading has-text-centered" v-html="strings.no_images_found" _v-1dc903c1=""></th>\n\t\t\t</tr>\n\t\t\t</thead>\n\t\t</table>\n\t</div>\n'},function(t,e,n){var o,i;o=n(38),i=n(44),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(39),i=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:"conflicts",components:{ConflictItem:i.default},data:function(){return{home_url:optimoleDashboardApp.home_url,strings:optimoleDashboardApp.strings.conflicts}},computed:{noConflicts:function(){return 0===this.$store.state.conflicts.count},conflictData:function(){return null!==this.$store.state.conflicts.conflicts?this.$store.state.conflicts.conflicts:[]}}}},function(t,e,n){var o,i;n(40),o=n(42),i=n(43),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(41);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\t#optimole-app .optml-conflict-done.button.is-link.is-outlined.is-loading[_v-5dd24740]::after {\n\t\tborder-color: transparent transparent #fff #fff !important;\n\t}\n\n\t.optml-conflict-done[_v-5dd24740]:hover {\n\t\tbackground-color: transparent !important;\n\t\tcolor: #fff !important;\n\t\tborder-color: transparent !important;\n\t}\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"conflict-item",props:{item:{type:Object},is_loading:{type:Boolean,default:!1}},data:function(){return{home_url:optimoleDashboardApp.home_url,strings:optimoleDashboardApp.strings.conflicts}},methods:{conflictClass:function(t){return"high"===t?"is-danger":"medium"===t?"is-info":"is-primary"},dismissConflict:function(t){this.is_loading=!0,this.$store.dispatch("dismissConflict",{conflictID:t,component:this})}}}},function(t,e){t.exports='\n\t<div class="notification" :class="conflictClass( item.severity )" _v-5dd24740="">\n\t\t<div v-html="item.message" _v-5dd24740=""></div>\n\n\t\t<a :class="is_loading ? \'is-loading\' : \'\' " class="is-pulled-right button optml-conflict-done is-small is-link is-inverted is-outlined" v-on:click="dismissConflict( item.id )" _v-5dd24740=""><span v-if="!is_loading" class="dashicons dashicons-yes" _v-5dd24740=""></span>{{strings.conflict_close}}</a>\n\t\t<div class=" is-clearfix" _v-5dd24740=""></div>\n\t</div>\n'},function(t,e){t.exports='\n\t<div>\n\t\t<div class="conflicts-table">\n\t\t\t<h6 v-if="!noConflicts" class="has-text-centered">{{strings.title}}</h6>\n\t\t\t<div v-if="!noConflicts">\n\n\t\t\t\t<div class="row" v-for="(item, index) in conflictData">\n\t\t\t\t\t<div class="column">\n\t\t\t\t\t\t<conflict-item v-bind:item=item v-bind:is_loading="false"></conflict-item>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if="noConflicts">\n\t\t\t\t<table class="table is-striped is-hoverable is-fullwidth">\n\t\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th class="optml-image-heading has-text-centered" v-html="strings.no_conflicts_found"></th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n'},function(t,e,n){var o,i;n(46),o=n(48),i=n(94),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(47);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n #optml-settings-menu > ul.menu-list.optml-settings-submenu[_v-5187a250] {\n list-style: none;\n }\n\n #optml-settings-menu li a span.tag.optml-beta[_v-5187a250] {\n border-radius: 2px;\n font-family: Verdana;\n font-size: .5rem;\n height: 2.25em;\n margin-left: .5em;\n vertical-align: text-bottom;\n }\n\n #optml-settings-menu > ul.menu-list > li > ul[_v-5187a250] {\n margin-top: 10px;\n padding-top: 10px;\n border: none;\n font-size: 0.8rem;\n list-style: none;\n }\n\n .subtab-content[_v-5187a250] {\n\n padding: 0.5em 0.75em;\n }\n\n #optml-settings-menu[_v-5187a250] {\n padding-top: 23px;\n }\n\n .subtab-content[_v-5187a250] {\n padding-top: 10px;\n }\n\n .advanced-link[_v-5187a250] {\n font-size: 100%;\n line-height: 20px;\n }\n\n #optimole-app .is-menu-disabled > ul > li > a[_v-5187a250] {\n cursor: not-allowed;\n }\n\n .is-tab-disabled[_v-5187a250]:not(.is-tab-general),\n .is-menu-disabled[_v-5187a250] {\n opacity: 0.4;\n cursor: not-allowed;\n }\n",""])},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(49),a=o(i),r=n(54),s=o(r),l=n(5),p=o(l),c=n(74),d=o(c),m=n(79),u=o(m),f=n(89),h=o(f);e.default={name:"options",components:{Lazyload:h.default,Exclusions:u.default,Resize:d.default,Watermarks:p.default,Compression:s.default,General:a.default},data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showNotification:!1,tab:"general",isDisabled:!1,advancedOpen:!1}},mounted:function(){},methods:{ToggleAdvanced:function(){this.advancedOpen=!this.advancedOpen,this.advancedOpen||(this.tab="general"),this.advancedOpen&&(this.tab="compression")},changeTab:function(t){this.tab=t},updateGlobalState:function(t){this.isDisabled=!t}},computed:{}}},function(t,e,n){var o,i;n(50),o=n(52),i=n(53),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(51);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n .is-field-disabled[_v-cb8820cc] {\n opacity: 0.5;\n }\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"general",components:{},data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showNotification:!1,showSave:!1,isReplacerOff:!1,new_data:{}}},mounted:function(){this.isReplacerOff="disabled"===this.site_settings.image_replacer,this.$emit("update-status",!this.isReplacerOff)},methods:{saveChanges:function(){this.$store.dispatch("saveSettings",{settings:this.new_data})}},computed:{site_settings:function(){return this.$store.state.site_settings},getReplacerStatus:{get:function(){return!("disabled"===this.site_settings.image_replacer)},set:function(t){this.showSave=!0,this.isReplacerOff=!t,this.$emit("update-status",t),this.new_data.image_replacer=t?"enabled":"disabled"}},lazyLoadStatus:{set:function(t){this.showSave=!0,this.new_data.lazyload=t?"enabled":"disabled"},get:function(){return!("disabled"===this.site_settings.lazyload)}}}}},function(t,e){t.exports='\n <div :class="{ \'saving--option\' : this.$store.state.loading }" _v-cb8820cc="">\n <div class="field columns" _v-cb8820cc="">\n <label class="label column has-text-grey-dark" _v-cb8820cc="">\n {{strings.enable_image_replace}}\n <p class="is-italic has-text-weight-normal" _v-cb8820cc="">\n {{strings.replacer_desc}}\n </p>\n </label>\n <div class="column is-3" _v-cb8820cc="">\n <toggle-button :class="\'has-text-dark\'" v-model="getReplacerStatus" :disabled="this.$store.state.loading" :labels="{checked: strings.enabled, unchecked: strings.disabled}" :width="80" :height="25" color="#008ec2" _v-cb8820cc=""></toggle-button>\n </div>\n\n </div>\n <div class="field is-fullwidth columns" :class="{\'is-field-disabled\':isReplacerOff }" _v-cb8820cc="">\n <label class="label column has-text-grey-dark" _v-cb8820cc="">\n {{strings.toggle_lazyload}}\n <p class="is-italic has-text-weight-normal" _v-cb8820cc="">\n {{strings.lazyload_desc}}\n </p>\n </label>\n\n <div class="column is-3 " _v-cb8820cc="">\n <toggle-button :class="\'has-text-dark\'" v-model="lazyLoadStatus" :disabled="this.$store.state.loading" :labels="{checked: strings.enabled, unchecked: strings.disabled}" :width="80" :height="25" color="#008ec2" _v-cb8820cc=""></toggle-button>\n </div>\n </div>\n <div class="field is-fullwidth columns " _v-cb8820cc="">\n <div class="column is-left" _v-cb8820cc="">\n <button @click="saveChanges()" class="button is-success is-small " :class="this.$store.state.loading ? \'is-loading\' : \'\' " :disabled="!showSave" _v-cb8820cc="">\n {{strings.save_changes}}\n </button>\n </div>\n </div>\n\n </div>\n'},function(t,e,n){var o,i;n(55),o=n(57),i=n(68),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(56);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n .sample-image[_v-2bdf3418]{\n margin-top:30px;\n }\n .view-sample-image[_v-2bdf3418]{\n\n line-height: 32px;\n margin-left: 20px;\n }\n",""])},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}function i(t){return 90===t?optimoleDashboardApp.strings.options_strings.high_q_title:75===t?optimoleDashboardApp.strings.options_strings.medium_q_title:55===t?optimoleDashboardApp.strings.options_strings.low_q_title:t}function a(t){return"number"==typeof t?t:"auto"===t?90:"high_c"===t?90:"medium_c"===t?75:"low_c"===t?55:90}Object.defineProperty(e,"__esModule",{value:!0});var r=n(58),s=o(r),l=n(59),p=o(l);n(64),e.default={name:"compression",components:{VueSlider:s.default,Image_diff:p.default},data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showSave:!1,showSample:!1,loading_images:!1,showComparison:!1,new_data:{quality:a(this.$store.state.site_settings.quality),network_optimization:this.$store.state.site_settings.network_optimization},sliderOptions:{processStyle:{backgroundColor:"#3273dc"},contained:!0,dotStyle:{borderColor:"#3273dc"},min:1,max:100,tooltipFormatter:function(t){return i(t)},marks:function(t){var e={width:"12px",height:"12px",display:"block",backgroundColor:"#3273dc",borderColor:"#3273dc",boxShadow:"none",transform:"translate(-4px, -4px)"},n=i(t);return"number"!=typeof n&&{label:n,style:e}}}}},mounted:function(){},methods:{saveChanges:function(){this.$store.dispatch("saveSettings",{settings:this.new_data})},newSample:function(t){return!0!==this.showComparison&&(this.showComparison=!0),this.updateSampleImage(this.new_data.quality,t?"yes":"no"),!1},updateSampleImage:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"no";this.$store.dispatch("sampleRate",{quality:t,force:n,component:this}).then(function(t){setTimeout(function(){e.showNotification=!1},1e3)},function(t){})}},computed:{site_settings:function(){return this.$store.state.site_settings},compressionRatio:function(){return(100*parseFloat(this.sample_images.optimized_size/this.sample_images.original_size)).toFixed(0)},sample_images:function(){return this.$store.state.sample_rate},networkStatus:{set:function(t){this.showSave=!0,this.new_data.network_optimization=t?"enabled":"disabled"},get:function(){return!("disabled"===this.site_settings.network_optimization)}}}}},function(t,e,n){!function(e,o){t.exports=o(n(2))}("undefined"!=typeof self&&self,function(t){return function(t){function e(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:o})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(e.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)e.d(o,i,function(e){return t[e]}.bind(null,i));return o},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s="fb15")}({2350:function(t,e){function n(t,e){var n=t[1]||"",i=t[3];if(!i)return n;if(e&&"function"==typeof btoa){var a=o(i);return[n].concat(i.sources.map(function(t){return"/*# sourceURL="+i.sourceRoot+t+" */"})).concat([a]).join("\n")}return[n].join("\n")}function o(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=n(e,t);return e[2]?"@media "+e[2]+"{"+o+"}":o}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},i=0;i<this.length;i++){var a=this[i][0];"number"==typeof a&&(o[a]=!0)}for(i=0;i<t.length;i++){var r=t[i];"number"==typeof r[0]&&o[r[0]]||(n&&!r[2]?r[2]=n:n&&(r[2]="("+r[2]+") and ("+n+")"),e.push(r))}},e}},"499e":function(t,e,n){"use strict";function o(t,e){for(var n=[],o={},i=0;i<e.length;i++){var a=e[i],r=a[0],s=a[1],l=a[2],p=a[3],c={id:t+":"+i,css:s,media:l,sourceMap:p};o[r]?o[r].parts.push(c):n.push(o[r]={id:r,parts:[c]})}return n}function i(t,e,n,i){h=n,v=i||{};var r=o(t,e);return a(r),function(e){for(var n=[],i=0;i<r.length;i++){var s=r[i],l=d[s.id];l.refs--,n.push(l)}for(e?(r=o(t,e),a(r)):r=[],i=0;i<n.length;i++)if(l=n[i],0===l.refs){for(var p=0;p<l.parts.length;p++)l.parts[p]();delete d[l.id]}}}function a(t){for(var e=0;e<t.length;e++){var n=t[e],o=d[n.id];if(o){o.refs++;for(var i=0;i<o.parts.length;i++)o.parts[i](n.parts[i]);for(;i<n.parts.length;i++)o.parts.push(s(n.parts[i]));o.parts.length>n.parts.length&&(o.parts.length=n.parts.length)}else{var a=[];for(i=0;i<n.parts.length;i++)a.push(s(n.parts[i]));d[n.id]={id:n.id,refs:1,parts:a}}}}function r(){var t=document.createElement("style");return t.type="text/css",m.appendChild(t),t}function s(t){var e,n,o=document.querySelector("style["+g+'~="'+t.id+'"]');if(o){if(h)return b;o.parentNode.removeChild(o)}if(x){var i=f++;o=u||(u=r()),e=l.bind(null,o,i,!1),n=l.bind(null,o,i,!0)}else o=r(),e=p.bind(null,o),n=function(){o.parentNode.removeChild(o)};return e(t),function(o){if(o){if(o.css===t.css&&o.media===t.media&&o.sourceMap===t.sourceMap)return;e(t=o)}else n()}}function l(t,e,n,o){var i=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=y(e,i);else{var a=document.createTextNode(i),r=t.childNodes;r[e]&&t.removeChild(r[e]),r.length?t.insertBefore(a,r[e]):t.appendChild(a)}}function p(t,e){var n=e.css,o=e.media,i=e.sourceMap;if(o&&t.setAttribute("media",o),v.ssrId&&t.setAttribute(g,e.id),i&&(n+="\n/*# sourceURL="+i.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}n.r(e),n.d(e,"default",function(){return i});var c="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!c)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var d={},m=c&&(document.head||document.getElementsByTagName("head")[0]),u=null,f=0,h=!1,b=function(){},v=null,g="data-vue-ssr-id",x="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase()),y=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},"4abb":function(t,e,n){var o=n("df80");"string"==typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals),(0,n("499e").default)("3e7284f8",o,!0,{sourceMap:!1,shadowMode:!1})},"4ed8":function(t,e,n){var o=n("ae61");"string"==typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals),(0,n("499e").default)("57c2b2f0",o,!0,{sourceMap:!1,shadowMode:!1})},"556c":function(t,e,n){var o=n("d5ac");"string"==typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals),(0,n("499e").default)("f3ffc7f8",o,!0,{sourceMap:!1,shadowMode:!1})},"65d9":function(t,e,n){"use strict";function o(t,e){i(t,e),Object.getOwnPropertyNames(e.prototype).forEach(function(n){i(t.prototype,e.prototype,n)}),Object.getOwnPropertyNames(e).forEach(function(n){i(t,e,n)})}function i(t,e,n){(n?Reflect.getOwnMetadataKeys(e,n):Reflect.getOwnMetadataKeys(e)).forEach(function(o){var i=n?Reflect.getOwnMetadata(o,e,n):Reflect.getOwnMetadata(o,e);n?Reflect.defineMetadata(o,i,t,n):Reflect.defineMetadata(o,i,t)})}function a(t){return function(e,n,o){var i="function"==typeof e?e:e.constructor;i.__decorators__||(i.__decorators__=[]),"number"!=typeof o&&(o=void 0),i.__decorators__.push(function(e){return t(e,n,o)})}}function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return m.extend({mixins:t})}function s(t){var e=typeof t;return null==t||"object"!==e&&"function"!==e}function l(t,e){var n=e.prototype._init;e.prototype._init=function(){var e=this,n=Object.getOwnPropertyNames(t);if(t.$options.props)for(var o in t.$options.props)t.hasOwnProperty(o)||n.push(o);n.forEach(function(n){"_"!==n.charAt(0)&&Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){t[n]=e},configurable:!0})})};var o=new e;e.prototype._init=n;var i={};return Object.keys(o).forEach(function(t){void 0!==o[t]&&(i[t]=o[t])}),i}function p(t,e){void 0===e&&(e={}),e.name=e.name||t._componentTag||t.name;var n=t.prototype;Object.getOwnPropertyNames(n).forEach(function(t){if("constructor"!==t)if(b.indexOf(t)>-1)e[t]=n[t];else{var o=Object.getOwnPropertyDescriptor(n,t);void 0!==o.value?"function"==typeof o.value?(e.methods||(e.methods={}))[t]=o.value:(e.mixins||(e.mixins=[])).push({data:function(){var e;return e={},e[t]=o.value,e}}):(o.get||o.set)&&((e.computed||(e.computed={}))[t]={get:o.get,set:o.set})}}),(e.mixins||(e.mixins=[])).push({data:function(){return l(this,t)}});var i=t.__decorators__;i&&(i.forEach(function(t){return t(e)}),delete t.__decorators__);var a=Object.getPrototypeOf(t.prototype),r=a instanceof m?a.constructor:m,s=r.extend(e);return c(s,t,r),u&&o(s,t),s}function c(t,e,n){Object.getOwnPropertyNames(e).forEach(function(o){if("prototype"!==o){var i=Object.getOwnPropertyDescriptor(t,o);if(!i||i.configurable){var a=Object.getOwnPropertyDescriptor(e,o);if(!h){if("cid"===o)return;var r=Object.getOwnPropertyDescriptor(n,o);if(!s(a.value)&&r&&r.value===a.value)return}Object.defineProperty(t,o,a)}}})}function d(t){return"function"==typeof t?p(t):function(e){return p(e,t)}}Object.defineProperty(e,"__esModule",{value:!0});var m=/**
|
12 |
* vue-class-component v7.0.1
|
13 |
* (c) 2015-present Evan You
|
14 |
* @license MIT
|
18 |
* Version: 2.8.19
|
19 |
* Author: LianYue
|
20 |
*/
|
21 |
+
!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){var e=a(t);return r(e,t.body)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(){var t=document.head||document.getElementsByTagName("head")[0],e=n.styles||(n.styles={}),o="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(n,i){if(!document.querySelector('style[data-vue-ssr-id~="'+n+'"]')){var a=o?i.media||"default":n,r=e[a]||(e[a]={ids:[],parts:[],element:void 0});if(!r.ids.includes(n)){var s=i.source,l=r.ids.length;if(r.ids.push(n),i.map&&(s+="\n/*# sourceURL="+i.map.sources[0]+" */",s+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i.map))))+" */"),o&&(r.element=r.element||document.querySelector("style[data-group="+a+"]")),!r.element){var p=r.element=document.createElement("style");p.type="text/css",i.media&&p.setAttribute("media",i.media),o&&(p.setAttribute("data-group",a),p.setAttribute("data-next-index","0")),t.appendChild(p)}if(o&&(l=parseInt(r.element.getAttribute("data-next-index")),r.element.setAttribute("data-next-index",l+1)),r.element.styleSheet)r.parts.push(s),r.element.styleSheet.cssText=r.parts.filter(Boolean).join("\n");else{var c=document.createTextNode(s),d=r.element.childNodes;d[l]&&r.element.removeChild(d[l]),d.length?r.element.insertBefore(c,d[l]):r.element.appendChild(c)}}}}}function o(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function i(){var t=document.head||document.getElementsByTagName("head")[0],e=i.styles||(i.styles={}),n="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(o,i){if(!document.querySelector('style[data-vue-ssr-id~="'+o+'"]')){var a=n?i.media||"default":o,r=e[a]||(e[a]={ids:[],parts:[],element:void 0});if(!r.ids.includes(o)){var s=i.source,l=r.ids.length;if(r.ids.push(o),i.map&&(s+="\n/*# sourceURL="+i.map.sources[0]+" */",s+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i.map))))+" */"),n&&(r.element=r.element||document.querySelector("style[data-group="+a+"]")),!r.element){var p=r.element=document.createElement("style");p.type="text/css",i.media&&p.setAttribute("media",i.media),n&&(p.setAttribute("data-group",a),p.setAttribute("data-next-index","0")),t.appendChild(p)}if(n&&(l=parseInt(r.element.getAttribute("data-next-index")),r.element.setAttribute("data-next-index",l+1)),r.element.styleSheet)r.parts.push(s),r.element.styleSheet.cssText=r.parts.filter(Boolean).join("\n");else{var c=document.createTextNode(s),d=r.element.childNodes;d[l]&&r.element.removeChild(d[l]),d.length?r.element.insertBefore(c,d[l]):r.element.appendChild(c)}}}}}var a=function(t){var e=new XMLHttpRequest;return e.open(t.method||"GET",t.url),e.responseType="json",t.headers&&Object.keys(t.headers).forEach(function(n){e.setRequestHeader(n,t.headers[n])}),e},r=function(t,e){return new Promise(function(n,o){t.onload=function(){if(t.status>=200&&t.status<300){var e;try{e=JSON.parse(t.response)}catch(n){e=t.response}n(e)}else o(t.response)},t.onerror=function(){return o(t.response)},t.send(JSON.stringify(e))})},s=function(t,e){var n=new FormData;for(var o in e)n.append(o,e[o]);return new Promise(function(e,o){t.onload=function(){if(t.status>=200&&t.status<300){var n;try{n=JSON.parse(t.response)}catch(e){n=t.response}e(n)}else o(t.response)},t.onerror=function(){return o(t.response)},t.send(n)})},l=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(){function n(t,o){e(this,n),this.file=t,this.options=o}return l(n,[{key:"createChunks",value:function(){this.chunks=[];for(var t=0,e=this.chunkSize;t<this.fileSize;)this.chunks.push({blob:this.file.file.slice(t,e),startOffset:t,active:!1,retries:this.maxRetries}),t=e,e=t+this.chunkSize}},{key:"updateFileProgress",value:function(){this.file.progress=this.progress}},{key:"pause",value:function(){this.file.active=!1,this.stopChunks()}},{key:"stopChunks",value:function(){this.chunksUploading.forEach(function(t){t.xhr.abort(),t.active=!1})}},{key:"resume",value:function(){this.file.active=!0,this.startChunking()}},{key:"upload",value:function(){var t=this;return this.promise=new Promise(function(e,n){t.resolve=e,t.reject=n}),this.start(),this.promise}},{key:"start",value:function(){var e=this;t({method:"POST",headers:Object.assign({},this.headers,{"Content-Type":"application/json"}),url:this.action,body:Object.assign(this.startBody,{phase:"start",mime_type:this.fileType,size:this.fileSize,name:this.fileName})}).then(function(t){if("success"!==t.status)return e.file.response=t,e.reject("server");e.sessionId=t.data.session_id,e.chunkSize=t.data.end_offset,e.createChunks(),e.startChunking()}).catch(function(t){e.file.response=t,e.reject("server")})}},{key:"startChunking",value:function(){for(var t=0;t<this.maxActiveChunks;t++)this.uploadNextChunk()}},{key:"uploadNextChunk",value:function(){if(this.file.active){if(this.hasChunksToUpload)return this.uploadChunk(this.chunksToUpload[0]);if(0===this.chunksUploading.length)return this.finish()}}},{key:"uploadChunk",value:function(t){var e=this;t.progress=0,t.active=!0,this.updateFileProgress(),t.xhr=a({method:"POST",headers:this.headers,url:this.action}),t.xhr.upload.addEventListener("progress",function(e){e.lengthComputable&&(t.progress=Math.round(e.loaded/e.total*100))},!1),s(t.xhr,Object.assign(this.uploadBody,{phase:"upload",session_id:this.sessionId,start_offset:t.startOffset,chunk:t.blob})).then(function(n){if(t.active=!1,"success"===n.status)t.uploaded=!0;else if(t.retries--<=0)return e.stopChunks(),e.reject("upload");e.uploadNextChunk()}).catch(function(){if(t.active=!1,t.retries--<=0)return e.stopChunks(),e.reject("upload");e.uploadNextChunk()})}},{key:"finish",value:function(){var e=this;this.updateFileProgress(),t({method:"POST",headers:Object.assign({},this.headers,{"Content-Type":"application/json"}),url:this.action,body:Object.assign(this.finishBody,{phase:"finish",session_id:this.sessionId})}).then(function(t){if(e.file.response=t,"success"!==t.status)return e.reject("server");e.resolve(t)}).catch(function(t){e.file.response=t,e.reject("server")})}},{key:"maxRetries",get:function(){return parseInt(this.options.maxRetries)}},{key:"maxActiveChunks",get:function(){return parseInt(this.options.maxActive)}},{key:"fileType",get:function(){return this.file.type}},{key:"fileSize",get:function(){return this.file.size}},{key:"fileName",get:function(){return this.file.name}},{key:"action",get:function(){return this.options.action||null}},{key:"startBody",get:function(){return this.options.startBody||{}}},{key:"uploadBody",get:function(){return this.options.uploadBody||{}}},{key:"finishBody",get:function(){return this.options.finishBody||{}}},{key:"headers",get:function(){return this.options.headers||{}}},{key:"readyToUpload",get:function(){return!!this.chunks}},{key:"progress",get:function(){var t=this,e=this.chunksUploaded.length/this.chunks.length*100,n=this.chunksUploading.reduce(function(e,n){return e+(0|n.progress)/t.chunks.length},0);return Math.min(e+n,100)}},{key:"chunksToUpload",get:function(){return this.chunks.filter(function(t){return!t.active&&!t.uploaded})}},{key:"hasChunksToUpload",get:function(){return this.chunksToUpload.length>0}},{key:"chunksUploading",get:function(){return this.chunks.filter(function(t){return!!t.xhr&&!!t.active})}},{key:"chunksUploaded",get:function(){return this.chunks.filter(function(t){return!!t.uploaded})}}]),n}(),c={methods:{change:function(t){this.$parent.addInputFile(t.target),t.target.files?(t.target.value="",/safari/i.test(navigator.userAgent)||(t.target.type="",t.target.type="file")):(this.$destroy(),new this.constructor({parent:this.$parent,el:this.$el}))}}},d=c,m=function(){var t=this,e=t.$createElement;return(t._self._c||e)("input",{attrs:{type:"file",name:t.$parent.name,id:t.$parent.inputId||t.$parent.name,accept:t.$parent.accept,capture:t.$parent.capture,disabled:t.$parent.disabled,webkitdirectory:t.$parent.directory&&t.$parent.features.directory,directory:t.$parent.directory&&t.$parent.features.directory,multiple:t.$parent.multiple&&t.$parent.features.html5},on:{change:t.change}})},u=[],f=function(t,e,n,o,i,a,r,s){var l=("function"==typeof n?n.options:n)||{};return l.render||(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,i&&(l.functional=!0)),l._scopeId=o,l}({render:m,staticRenderFns:u},void 0,d,void 0,!1,void 0,n,void 0),h=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},v={headers:{},action:"",minSize:1048576,maxActive:3,maxRetries:5,handler:p},g={components:{InputFile:f},props:{inputId:{type:String},name:{type:String,default:"file"},accept:{type:String},capture:{},disabled:{},multiple:{type:Boolean},maximum:{type:Number,default:function(){return this.multiple?0:1}},addIndex:{type:[Boolean,Number]},directory:{type:Boolean},postAction:{type:String},putAction:{type:String},customAction:{type:Function},headers:{type:Object,default:Object},data:{type:Object,default:Object},timeout:{type:Number,default:0},drop:{default:!1},dropDirectory:{type:Boolean,default:!0},size:{type:Number,default:0},extensions:{default:Array},value:{type:Array,default:Array},thread:{type:Number,default:1},chunkEnabled:{type:Boolean,default:!1},chunk:{type:Object,default:function(){return v}}},data:function(){return{files:this.value,features:{html5:!0,directory:!1,drag:!1},active:!1,dropActive:!1,uploading:0,destroy:!1}},mounted:function(){var t=document.createElement("input");if(t.type="file",t.multiple=!0,window.FormData&&t.files?("boolean"!=typeof t.webkitdirectory&&"boolean"!=typeof t.directory||(this.features.directory=!0),this.features.html5&&void 0!==t.ondrop&&(this.features.drop=!0)):this.features.html5=!1,this.maps={},this.files)for(var e=0;e<this.files.length;e++){var n=this.files[e];this.maps[n.id]=n}this.$nextTick(function(){this.$parent&&this.$parent.$forceUpdate(),this.watchDrop(this.drop)})},beforeDestroy:function(){this.destroy=!0,this.active=!1},computed:{uploaded:function(){for(var t=void 0,e=0;e<this.files.length;e++)if(t=this.files[e],t.fileObject&&!t.error&&!t.success)return!1;return!0},chunkOptions:function(){return Object.assign(v,this.chunk)},className:function(){return["file-uploads",this.features.html5?"file-uploads-html5":"file-uploads-html4",this.features.directory&&this.directory?"file-uploads-directory":void 0,this.features.drop&&this.drop?"file-uploads-drop":void 0,this.disabled?"file-uploads-disabled":void 0]}},watch:{active:function(t){this.watchActive(t)},dropActive:function(){this.$parent&&this.$parent.$forceUpdate()},drop:function(t){this.watchDrop(t)},value:function(t){if(this.files!==t){this.files=t;var e=this.maps;this.maps={};for(var n=0;n<this.files.length;n++){var o=this.files[n];this.maps[o.id]=o}for(var i in this.maps){var a=this.maps[i],r=e[i];a!==r&&this.emitFile(a,r)}for(var s in e)this.maps[s]||this.emitFile(void 0,e[s])}}},methods:{clear:function(){if(this.files.length){var t=this.files;this.files=[],this.maps={},this.emitInput();for(var e=0;e<t.length;e++)this.emitFile(void 0,t[e])}return!0},get:function(t){return!!t&&("object"===(void 0===t?"undefined":b(t))?this.maps[t.id]||!1:this.maps[t]||!1)},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.addIndex,n=t,o=n instanceof Array;o||(n=[n]);for(var i=[],a=0;a<n.length;a++){var r=n[a];this.features.html5&&r instanceof Blob&&(r={file:r,size:r.size,name:r.webkitRelativePath||r.relativePath||r.name||"unknown",type:r.type});var s=!1;if(!1===r.fileObject||(r.fileObject?s=!0:"undefined"!=typeof Element&&r.el instanceof Element?s=!0:"undefined"!=typeof Blob&&r.file instanceof Blob&&(s=!0)),s&&(r=h({fileObject:!0,size:-1,name:"Filename",type:"",active:!1,error:"",success:!1,putAction:this.putAction,postAction:this.postAction,timeout:this.timeout},r,{response:{},progress:"0.00",speed:0}),r.data=h({},this.data,r.data?r.data:{}),r.headers=h({},this.headers,r.headers?r.headers:{})),r.id||(r.id=Math.random().toString(36).substr(2)),!this.emitFilter(r,void 0)){if(this.maximum>1&&i.length+this.files.length>=this.maximum)break;if(i.push(r),1===this.maximum)break}}if(!i.length)return!1;1===this.maximum&&this.clear();var l=void 0;if(!0===e||0===e)l=i.concat(this.files);else if(e){var p;l=this.files.concat([]),(p=l).splice.apply(p,[e,0].concat(i))}else l=this.files.concat(i);this.files=l;for(var c=0;c<i.length;c++){var d=i[c];this.maps[d.id]=d}this.emitInput();for(var m=0;m<i.length;m++)this.emitFile(i[m],void 0);return o?i:i[0]},addInputFile:function(t){var e=[];if(t.files)for(var n=0;n<t.files.length;n++){var o=t.files[n];e.push({size:o.size,name:o.webkitRelativePath||o.relativePath||o.name,type:o.type,file:o})}else{var i=t.value.replace(/\\/g,"/").split("/");delete t.__vuex__,e.push({name:i[i.length-1],el:t})}return this.add(e)},addDataTransfer:function(t){var e=this,n=[];if(t.items&&t.items.length){for(var i=[],a=0;a<t.items.length;a++){var r=t.items[a];r=r.getAsEntry?r.getAsEntry()||r.getAsFile():r.webkitGetAsEntry?r.webkitGetAsEntry()||r.getAsFile():r.getAsFile(),r&&i.push(r)}return new Promise(function(t,a){!function a(r){var s=i[r];if(!s||e.maximum>0&&n.length>=e.maximum)return t(e.add(n));e.getEntry(s).then(function(t){n.push.apply(n,o(t)),a(r+1)})}(0)})}if(t.files.length){for(var s=0;s<t.files.length&&(n.push(t.files[s]),!(this.maximum>0&&n.length>=this.maximum));s++);return Promise.resolve(this.add(n))}return Promise.resolve([])},getEntry:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new Promise(function(i,a){if(t.isFile)t.file(function(t){i([{size:t.size,name:n+t.name,type:t.type,file:t}])});else if(t.isDirectory&&e.dropDirectory){var r=[],s=t.createReader();!function a(){s.readEntries(function(s){!function l(p){return!s[p]&&0===p||e.maximum>0&&r.length>=e.maximum?i(r):s[p]?void e.getEntry(s[p],n+t.name+"/").then(function(t){r.push.apply(r,o(t)),l(p+1)}):a()}(0)})}()}else i([])})},replace:function(t,e){var n=this.get(t),o=this.get(e);if(!n||!o||n===o)return!1;var i=this.files.concat([]),a=i.indexOf(n),r=i.indexOf(o);return-1!==a&&-1!==r&&(i[a]=o,i[r]=n,this.files=i,this.emitInput(),!0)},remove:function(t){var e=this.get(t);if(e){if(this.emitFilter(void 0,e))return!1;var n=this.files.concat([]),o=n.indexOf(e);if(-1===o)return console.error("remove",e),!1;n.splice(o,1),this.files=n,delete this.maps[e.id],this.emitInput(),this.emitFile(void 0,e)}return e},update:function(t,e){var n=this.get(t);if(n){var o=h({},n,e);if(!n.fileObject||!n.active||o.active||o.error||o.success||(o.error="abort"),this.emitFilter(o,n))return!1;var i=this.files.concat([]),a=i.indexOf(n);return-1===a?(console.error("update",n),!1):(i.splice(a,1,o),this.files=i,delete this.maps[n.id],this.maps[o.id]=o,this.emitInput(),this.emitFile(o,n),o)}return!1},emitFilter:function(t,e){var n=!1;return this.$emit("input-filter",t,e,function(){return n=!0}),n},emitFile:function(t,e){this.$emit("input-file",t,e),!(t&&t.fileObject&&t.active)||e&&e.active?t&&t.fileObject&&t.active||!e||!e.fileObject||!e.active||this.uploading--:(this.uploading++,this.$nextTick(function(){var e=this;setTimeout(function(){e.upload(t).then(function(){(t=e.get(t))&&t.fileObject&&e.update(t,{active:!1,success:!t.error})}).catch(function(n){e.update(t,{active:!1,success:!1,error:n.code||n.error||n.message||n})})},parseInt(50*Math.random()+50,10))})),!this.active||Boolean(t)===Boolean(e)&&t.active===e.active||this.watchActive(!0)},emitInput:function(){this.$emit("input",this.files)},upload:function(t){var e=this.get(t);if(!e)return Promise.reject("not_exists");if(!e.fileObject)return Promise.reject("file_object");if(e.error)return Promise.reject(e.error);if(e.success)return Promise.resolve(e);var n=this.extensions;if(n&&(n.length||void 0===n.length)&&("object"===(void 0===n?"undefined":b(n))&&n instanceof RegExp||("string"==typeof n&&(n=n.split(",").map(function(t){return t.trim()}).filter(function(t){return t})),n=new RegExp("\\.("+n.join("|").replace(/\./g,"\\.")+")$","i")),-1===e.name.search(n)))return Promise.reject("extension");if(this.size>0&&e.size>=0&&e.size>this.size)return Promise.reject("size");if(this.customAction)return this.customAction(e,this);if(this.features.html5){if(this.shouldUseChunkUpload(e))return this.uploadChunk(e);if(e.putAction)return this.uploadPut(e);if(e.postAction)return this.uploadHtml5(e)}return e.postAction?this.uploadHtml4(e):Promise.reject("No action configured")},shouldUseChunkUpload:function(t){return this.chunkEnabled&&!!this.chunkOptions.handler&&t.size>this.chunkOptions.minSize},uploadChunk:function(t){var e=this.chunkOptions.handler;return t.chunk=new e(t,this.chunkOptions),t.chunk.upload()},uploadPut:function(t){var e=[],n=void 0;for(var o in t.data)null!==(n=t.data[o])&&void 0!==n&&e.push(encodeURIComponent(o)+"="+encodeURIComponent(n));var i=e.length?(-1===t.putAction.indexOf("?")?"?":"&")+e.join("&"):"",a=new XMLHttpRequest;return a.open("PUT",t.putAction+i),this.uploadXhr(a,t,t.file)},uploadHtml5:function(t){var e=new window.FormData,n=void 0;for(var o in t.data)n=t.data[o],n&&"object"===(void 0===n?"undefined":b(n))&&"function"!=typeof n.toString?n instanceof File?e.append(o,n,n.name):e.append(o,JSON.stringify(n)):null!==n&&void 0!==n&&e.append(o,n);e.append(this.name,t.file,t.file.filename||t.name);var i=new XMLHttpRequest;return i.open("POST",t.postAction),this.uploadXhr(i,t,e)},uploadXhr:function(t,e,n){var o=this,i=e,a=0,r=0;t.upload.onprogress=function(t){if(i=o.get(i),t.lengthComputable&&i&&i.fileObject&&i.active){var e=Math.round(Date.now()/1e3);e!==a&&(a=e,i=o.update(i,{progress:(t.loaded/t.total*100).toFixed(2),speed:t.loaded-r}),r=t.loaded)}};var s=setInterval(function(){if(!(i=o.get(i))||!i.fileObject||i.success||i.error||!i.active){s&&(clearInterval(s),s=!1);try{t.abort(),t.timeout=1}catch(t){}}},100);return new Promise(function(e,a){var r=void 0,l=function(n){if(!r){if(r=!0,s&&(clearInterval(s),s=!1),!(i=o.get(i)))return a("not_exists");if(!i.fileObject)return a("file_object");if(i.error)return a(i.error);if(!i.active)return a("abort");if(i.success)return e(i);var l={};switch(n.type){case"timeout":case"abort":l.error=n.type;break;case"error":t.status?t.status>=500?l.error="server":t.status>=400&&(l.error="denied"):l.error="network";break;default:t.status>=500?l.error="server":t.status>=400?l.error="denied":l.progress="100.00"}if(t.responseText){var p=t.getResponseHeader("Content-Type");p&&-1!==p.indexOf("/json")?l.response=JSON.parse(t.responseText):l.response=t.responseText}return i=o.update(i,l),i.error?a(i.error):e(i)}};t.onload=l,t.onerror=l,t.onabort=l,t.ontimeout=l,i.timeout&&(t.timeout=i.timeout);for(var p in i.headers)t.setRequestHeader(p,i.headers[p]);i=o.update(i,{xhr:t}),t.send(n)})},uploadHtml4:function(t){var e=this,n=t,o=function(t){27===t.keyCode&&t.preventDefault()},i=document.createElement("iframe");i.id="upload-iframe-"+n.id,i.name="upload-iframe-"+n.id,i.src="about:blank",i.setAttribute("style","width:1px;height:1px;top:-999em;position:absolute; margin-top:-999em;");var a=document.createElement("form");a.action=n.postAction,a.name="upload-form-"+n.id,a.setAttribute("method","POST"),a.setAttribute("target","upload-iframe-"+n.id),a.setAttribute("enctype","multipart/form-data");var r=void 0,s=void 0;for(var l in n.data)r=n.data[l],r&&"object"===(void 0===r?"undefined":b(r))&&"function"!=typeof r.toString&&(r=JSON.stringify(r)),null!==r&&void 0!==r&&(s=document.createElement("input"),s.type="hidden",s.name=l,s.value=r,a.appendChild(s));a.appendChild(n.el),document.body.appendChild(i).appendChild(a);var p=function(){var t=void 0;try{i.contentWindow&&(t=i.contentWindow.document)}catch(t){}if(!t)try{t=i.contentDocument?i.contentDocument:i.document}catch(e){t=i.document}return t&&t.body?t.body.innerHTML:null};return new Promise(function(t,r){setTimeout(function(){if(!(n=e.update(n,{iframe:i})))return r("not_exists");var s=setInterval(function(){(n=e.get(n))&&n.fileObject&&!n.success&&!n.error&&n.active||(s&&(clearInterval(s),s=!1),i.onabort({type:n?"abort":"not_exists"}))},100),l=void 0,c=function(i){if(!l){if(l=!0,s&&(clearInterval(s),s=!1),document.body.removeEventListener("keydown",o),!(n=e.get(n)))return r("not_exists");if(!n.fileObject)return r("file_object");if(n.error)return r(n.error);if(!n.active)return r("abort");if(n.success)return t(n);var a=p(),c={};switch(i.type){case"abort":c.error="abort";break;case"error":n.error?c.error=n.error:c.error=null===a?"network":"denied";break;default:n.error?c.error=n.error:null===c?c.error="network":c.progress="100.00"}if(null!==a){if(a&&"{"===a.substr(0,1)&&"}"===a.substr(a.length-1,1))try{a=JSON.parse(a)}catch(t){}c.response=a}return n=e.update(n,c),n.error?r(n.error):t(n)}};i.onload=c,i.onerror=c,i.onabort=c,document.body.addEventListener("keydown",o),a.submit()},50)}).then(function(t){return i.parentNode&&i.parentNode.removeChild(i),t}).catch(function(t){return i.parentNode&&i.parentNode.removeChild(i),t})},watchActive:function(t){for(var e=void 0,n=0;e=this.files[n];)if(n++,e.fileObject)if(t&&!this.destroy){if(this.uploading>=this.thread||this.uploading&&!this.features.html5)break;e.active||e.error||e.success||this.update(e,{active:!0})}else e.active&&this.update(e,{active:!1});else;0===this.uploading&&(this.active=!1)},watchDrop:function(t){var e=t;if(this.features.drop){if(this.dropElement)try{document.removeEventListener("dragenter",this.onDragenter,!1),document.removeEventListener("dragleave",this.onDragleave,!1),document.removeEventListener("drop",this.onDocumentDrop,!1),this.dropElement.removeEventListener("dragover",this.onDragover,!1),this.dropElement.removeEventListener("drop",this.onDrop,!1)}catch(t){}e?"string"==typeof e?e=document.querySelector(e)||this.$root.$el.querySelector(e):!0===e&&(e=this.$parent.$el):e=!1,this.dropElement=e,this.dropElement&&(document.addEventListener("dragenter",this.onDragenter,!1),document.addEventListener("dragleave",this.onDragleave,!1),document.addEventListener("drop",this.onDocumentDrop,!1),this.dropElement.addEventListener("dragover",this.onDragover,!1),this.dropElement.addEventListener("drop",this.onDrop,!1))}},onDragenter:function(t){if(t.preventDefault(),!this.dropActive&&t.dataTransfer){var e=t.dataTransfer;e.files&&e.files.length?this.dropActive=!0:e.types?e.types.indexOf&&-1!==e.types.indexOf("Files")?this.dropActive=!0:e.types.contains&&e.types.contains("Files")&&(this.dropActive=!0):this.dropActive=!0}},onDragleave:function(t){t.preventDefault(),this.dropActive&&("HTML"===t.target.nodeName||t.target===t.explicitOriginalTarget||!t.fromElement&&(t.clientX<=0||t.clientY<=0||t.clientX>=window.innerWidth||t.clientY>=window.innerHeight))&&(this.dropActive=!1)},onDragover:function(t){t.preventDefault()},onDocumentDrop:function(){this.dropActive=!1},onDrop:function(t){t.preventDefault(),this.addDataTransfer(t.dataTransfer)}}},x=g,y=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("span",{class:t.className},[t._t("default"),t._v(" "),n("label",{attrs:{for:t.inputId||t.name}}),t._v(" "),n("input-file")],2)},w=[],k=function(t){t&&t("data-v-595958af_0",{source:"\n.file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block\n}\n.file-uploads.file-uploads-html4 input,.file-uploads.file-uploads-html5 label{background:#fff;opacity:0;font-size:20em;z-index:1;top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%\n}\n.file-uploads.file-uploads-html4 label,.file-uploads.file-uploads-html5 input{background:rgba(255,255,255,0);overflow:hidden;position:fixed;width:1px;height:1px;z-index:-1;opacity:0\n}",map:void 0,media:void 0})},_=function(t,e,n,o,i,a,r,s){var l=("function"==typeof n?n.options:n)||{};l.render||(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,i&&(l.functional=!0)),l._scopeId=o;var p=void 0;if(e&&(p=function(t){e.call(this,r(t))}),void 0!==p)if(l.functional){var c=l.render;l.render=function(t,e){return p.call(e),c(t,e)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,p):[p]}return l}({render:y,staticRenderFns:w},k,x,void 0,!1,void 0,i,void 0),C=Object.freeze({default:_});return C&&_||C})},function(t,e){t.exports='\n\t<div _v-6d81614d="">\n\t\t<h4 _v-6d81614d="">{{strings.add_desc}}</h4>\n\t\t<div class="field columns" _v-6d81614d="">\n\t\t\t<div class="column" v-for="file in files" _v-6d81614d="">\n <span class="tag" _v-6d81614d="">\n <i _v-6d81614d="">{{file.name}}</i>\n <i v-if="!file.active && !file.success && file.error === \'\'" class="dashicons dashicons-yes icon has-text-grey-light" _v-6d81614d=""></i>\n <i v-else-if="file.active" class="dashicons dashicons-marker icon spin has-text-warning" _v-6d81614d=""></i>\n <i v-else-if="!file.active && file.success" class="dashicons dashicons-yes icon has-text-success" _v-6d81614d=""></i>\n <i v-else="" class="dashicons dashicons-no-alt icon has-text-danger" _v-6d81614d=""></i>\n </span>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class="column " _v-6d81614d="">\n\t\t\t<file-upload class="button is-secondary is-rounded" :post-action=" global.root + \'/add_watermark\'" :headers="{\'X-WP-Nonce\': global.nonce}" extensions="gif,jpg,jpeg,png,webp" accept="image/png,image/gif,image/jpeg,image/webp" :size="1024 * 1024 * 10" v-model="files" @input-filter="inputFilter" @input-file="inputFile" :disabled="loading" ref="upload" _v-6d81614d="">\n\t\t\t\t<i class="dashicons dashicons-plus icon" _v-6d81614d=""></i>\n\t\t\t\t{{strings.upload}}\n\t\t\t</file-upload>\n\t\t\t<br _v-6d81614d=""><br _v-6d81614d=""><span class="tag is-danger" v-if="is_error" _v-6d81614d="">{{error_message}}</span>\n\t\t</div>\n\t\t<hr _v-6d81614d="">\n\t\t<div class="box" _v-6d81614d="">\n\t\t\t<h3 _v-6d81614d=""><span class="dashicons dashicons-menu" _v-6d81614d=""></span> {{strings.list_header}} </h3>\n\t\t\t<small _v-6d81614d=""><i _v-6d81614d="">{{strings.max_allowed}}</i></small>\n\t\t\t\n\t\t\t<div class="optimized-images" _v-6d81614d="">\n\t\t\t\t<div v-if="!noImages" _v-6d81614d="">\n\t\t\t\t\t<h3 class="has-text-centered" _v-6d81614d="">{{strings.last}} {{strings.optimized_images}}</h3>\n\t\t\t\t\t<table class="table is-striped is-hoverable is-fullwidth" _v-6d81614d="">\n\t\t\t\t\t\t<thead _v-6d81614d="">\n\t\t\t\t\t\t<tr _v-6d81614d="">\n\t\t\t\t\t\t\t<th class="optml-image-heading" _v-6d81614d="">{{strings.id}}</th>\n\t\t\t\t\t\t\t<th class="optml-image-heading" _v-6d81614d="">{{strings.image}}</th>\n\t\t\t\t\t\t\t<th class="optml-image-heading" _v-6d81614d="">{{strings.action}}</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody _v-6d81614d="">\n\t\t\t\t\t\t<tr v-for="(item, index) in watermarkData" _v-6d81614d="">\n\t\t\t\t\t\t\t<td _v-6d81614d=""><code _v-6d81614d="">#{{item.ID}}</code></td>\n\t\t\t\t\t\t\t<td _v-6d81614d=""><img :src="item.guid" class="optml-image-watermark" width="50" _v-6d81614d=""></td>\n\t\t\t\t\t\t\t<td width="50" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a @click="removeWatermark(item.ID)" class="button is-small is-danger is-rounded" :class="{\'is-loading\':loading}" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t<span class="dashicons dashicons-no-alt icon" _v-6d81614d=""></span>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t\t\n\t\t\t\t\t<span class="tag is-success" v-if="loading" _v-6d81614d="">\n\t\t\t\t\t{{strings.loading_remove_watermark}}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<table class="table is-striped is-hoverable is-fullwidth" v-if="noImages" _v-6d81614d="">\n\t\t\t\t<thead _v-6d81614d="">\n\t\t\t\t<tr _v-6d81614d="">\n\t\t\t\t\t<th class="optml-image-heading has-text-centered" v-html="strings.no_images_found" _v-6d81614d=""></th>\n\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t</table>\n\t\t\t<hr _v-6d81614d="">\n\t\t\t<h3 _v-6d81614d=""><span class="dashicons dashicons-grid-view" _v-6d81614d=""></span> {{strings.settings_header}} </h3>\n\t\t\t<br _v-6d81614d="">\n\t\t\t<div class="field is-fullwidth columns" _v-6d81614d="">\n\t\t\t\t<label class="label is-half column has-text-grey-dark no-padding-right " _v-6d81614d="">\n\t\t\t\t\t{{strings.wm_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.wm_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t\n\t\t\t\t<div class="column is-paddingless" _v-6d81614d="">\n\t\t\t\t\t<div class="columns" _v-6d81614d="">\n\t\t\t\t\t\t<div class="field column is-narrow" _v-6d81614d="">\n\t\t\t\t\t\t\t<div class="select" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<select title="Watermark Selection" v-model="selectedWatermark" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t<option value="-1" _v-6d81614d="">No watermark</option>\n\t\t\t\t\t\t\t\t\t<option v-for="(item, index) in watermarkData" :value="item.ID" _v-6d81614d="">#({{item.ID}})\n\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<div class="field is-fullwidth columns" _v-6d81614d="">\n\t\t\t\t<label class="label is-half column has-text-grey-dark no-padding-right " _v-6d81614d="">\n\t\t\t\t\t{{strings.opacity_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.opacity_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t\n\t\t\t\t<div class="column is-paddingless" _v-6d81614d="">\n\t\t\t\t\t<div class="columns" _v-6d81614d="">\n\t\t\t\t\t\t<div class="field column is-narrow has-addons" _v-6d81614d="">\n\t\t\t\t\t\t\t<p class="control" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a class="button is-small is-static" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t{{strings.opacity_field}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class="control " _v-6d81614d="">\n\t\t\t\t\t\t\t\t<input v-model="watermarkOpacity" class="input is-small" type="number" min="0" max="100" _v-6d81614d="">\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<div class="field columns" _v-6d81614d="">\n\t\t\t\t<label class="label column has-text-grey-dark" _v-6d81614d="">\n\t\t\t\t\t{{strings.position_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.position_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t<div class="column buttons " _v-6d81614d="">\n\t\t\t\t\t<div class="field columns is-gapless is-marginless " _v-6d81614d="">\n\t\t\t\t\t\t<div class="is-fullwidth optml-layout-grid" _v-6d81614d="">\n\t\t\t\t\t\t\t<a @click="changePosition(\'nowe\')" :class="{ \'is-info\':isActivePosition (\'nowe\'), \' is-selected\':watermarkSettings.position === \'nowe\' }" class="grid-button " :title="strings.pos_nowe_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'no\')" :class="{ \'is-info\':isActivePosition (\'no\'), \' is-selected\':watermarkSettings.position === \'no\' }" class="grid-button " :title="strings.pos_no_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'noea\')" :class="{ \'is-info\':isActivePosition (\'noea\'), \' is-selected\':watermarkSettings.position === \'noea\' }" class="grid-button" :title="strings.pos_noea_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'we\')" :class="{ \'is-info\':isActivePosition (\'we\'), \' is-selected\':watermarkSettings.position === \'we\' }" class="grid-button" :title="strings.pos_we_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'ce\')" :class="{ \'is-info\':isActivePosition (\'ce\'), \' is-selected\':watermarkSettings.position === \'ce\' }" class="grid-button" :title="strings.pos_ce_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'ea\')" :class="{ \'is-info\':isActivePosition (\'ea\'), \' is-selected\':watermarkSettings.position === \'ea\' }" class="grid-button" :title="strings.pos_ea_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'sowe\')" :class="{ \'is-info\':isActivePosition (\'sowe\'), \' is-selected\':watermarkSettings.position === \'sowe\' }" class="grid-button" :title="strings.pos_sowe_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'so\')" :class="{ \'is-info\':isActivePosition (\'so\'), \' is-selected\':watermarkSettings.position === \'so\' }" class="grid-button" :title="strings.pos_so_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a @click="changePosition(\'soea\')" :class="{ \'is-info\':isActivePosition (\'soea\'), \' is-selected\':watermarkSettings.position === \'soea\' }" class="grid-button" :title="strings.pos_soea_title" _v-6d81614d="">\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<br _v-6d81614d="">\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<div class="field is-fullwidth columns " _v-6d81614d="">\n\t\t\t\t<label class="label is-half column has-text-grey-dark no-padding-right " _v-6d81614d="">\n\t\t\t\t\t{{strings.offset_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.offset_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t\n\t\t\t\t<div class="column is-paddingless" _v-6d81614d="">\n\t\t\t\t\t<div class="columns" _v-6d81614d="">\n\t\t\t\t\t\t<div class="field column is-narrow has-addons" _v-6d81614d="">\n\t\t\t\t\t\t\t<p class="control" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a class="button is-small is-static" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t{{strings.offset_x_field}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class="control " _v-6d81614d="">\n\t\t\t\t\t\t\t\t<input v-model="watermarkX" class="input is-tiny is-small" type="number" _v-6d81614d="">\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="field column is-narrow has-addons" _v-6d81614d="">\n\t\t\t\t\t\t\t<p class="control" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a class="button is-small is-static" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t{{strings.offset_y_field}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class="control " _v-6d81614d="">\n\t\t\t\t\t\t\t\t<input v-model="watermarkY" class="input is-small is-tiny" type="number" _v-6d81614d="">\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<div class="field is-fullwidth columns" _v-6d81614d="">\n\t\t\t\t<label class="label is-half column has-text-grey-dark no-padding-right " _v-6d81614d="">\n\t\t\t\t\t{{strings.scale_title}}\n\t\t\t\t\t<p class="is-italic has-text-weight-normal" _v-6d81614d="">\n\t\t\t\t\t\t{{strings.scale_desc}}\n\t\t\t\t\t</p>\n\t\t\t\t</label>\n\t\t\t\t\n\t\t\t\t<div class="column is-paddingless" _v-6d81614d="">\n\t\t\t\t\t<div class="columns" _v-6d81614d="">\n\t\t\t\t\t\t<div class="field column is-narrow has-addons" _v-6d81614d="">\n\t\t\t\t\t\t\t<p class="control" _v-6d81614d="">\n\t\t\t\t\t\t\t\t<a class="button is-small is-static" _v-6d81614d="">\n\t\t\t\t\t\t\t\t\t{{strings.scale_field}}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class="control " _v-6d81614d="">\n\t\t\t\t\t\t\t\t<input v-model="watermarkScale" class="input is-small" type="number" min="0" max="100" _v-6d81614d="">\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<p class="control column has-text-centered-desktop has-text-left-touch " _v-6d81614d="">\n\t\t\t\t<a @click="saveChanges()" class="button is-small is-success " :class="{\'is-loading\':loading}" _v-6d81614d="">\n\t\t\t\t\t<span class="dashicons dashicons-yes icon" _v-6d81614d=""></span>\n\t\t\t\t\t<span _v-6d81614d="">\t{{strings.save_changes}}</span>\n\t\t\t\t</a>\n\t\t\t</p>\n\t\t</div>\n\t</div>\n'},function(t,e,n){var o,i;n(75),o=n(77),i=n(78),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(76);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"resize",data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showSave:!1,new_data:{}}},mounted:function(){},methods:{saveChanges:function(){this.$store.dispatch("saveSettings",{settings:this.new_data})}},computed:{site_settings:function(){return this.$store.state.site_settings},widthStatus:{set:function(t){this.showSave=!0,this.new_data.max_width=t},get:function(){return this.site_settings.max_width}},heightStatus:{set:function(t){this.showSave=!0,this.new_data.max_height=t},get:function(){return this.site_settings.max_height}},resizeSmart:{set:function(t){this.showSave=!0,this.new_data.resize_smart=t?"enabled":"disabled"},get:function(){return!("disabled"===this.site_settings.resize_smart)}},retinaReady:{set:function(t){this.showSave=!0,this.new_data.retina_images=t?"enabled":"disabled"},get:function(){return!("disabled"===this.site_settings.retina_images)}}}}},function(t,e){t.exports='\n <div :class="{ \'saving--option\' : this.$store.state.loading }" _v-018981f2="">\n <div class="field columns" _v-018981f2="">\n <label class="label column has-text-grey-dark" _v-018981f2="">\n {{strings.enable_resize_smart_title}}\n <p class="is-italic has-text-weight-normal" _v-018981f2="">\n {{strings.enable_resize_smart_desc}}\n </p>\n </label>\n <div class="column is-3" _v-018981f2="">\n <toggle-button :class="\'has-text-dark\'" v-model="resizeSmart" :disabled="this.$store.state.loading" :labels="{checked: strings.enabled, unchecked: strings.disabled}" :width="80" :height="25" color="#008ec2" _v-018981f2=""></toggle-button>\n </div>\n\n </div>\n <div class="field columns" _v-018981f2="">\n <label class="label column has-text-grey-dark" _v-018981f2="">\n {{strings.enable_retina_title}}\n <p class="is-italic has-text-weight-normal" _v-018981f2="">\n {{strings.enable_retina_desc}}\n </p>\n </label>\n <div class="column is-3" _v-018981f2="">\n <toggle-button :class="\'has-text-dark\'" v-model="retinaReady" :disabled="this.$store.state.loading" :labels="{checked: strings.enabled, unchecked: strings.disabled}" :width="80" :height="25" color="#008ec2" _v-018981f2=""></toggle-button>\n </div>\n\n </div>\n <div class="field columns " _v-018981f2="">\n <label class="label column has-text-grey-dark no-padding-right " _v-018981f2="">\n {{strings.size_title}}\n <p class="is-italic has-text-weight-normal" _v-018981f2="">\n {{strings.size_desc}}\n </p>\n </label>\n\n <div class="column is-6 " _v-018981f2="">\n <div class="columns" _v-018981f2="">\n <div class="field column is-narrow has-addons" _v-018981f2="">\n <p class="control" _v-018981f2="">\n <a class="button is-small is-static" _v-018981f2="">\n {{strings.width_field}}\n </a>\n </p>\n <p class="control " _v-018981f2="">\n <input v-model="widthStatus" class="input is-small" type="number" min="100" max="10000" _v-018981f2="">\n </p>\n </div>\n <div class="field column is-small has-addons" _v-018981f2="">\n <p class="control" _v-018981f2="">\n <a class="button is-small is-static" _v-018981f2="">\n {{strings.height_field}}\n </a>\n </p>\n <p class="control " _v-018981f2="">\n <input v-model="heightStatus" class="input is-small" type="number" min="100" max="10000" _v-018981f2="">\n </p>\n </div>\n </div>\n </div>\n </div>\n <div class="field is-fullwidth columns " _v-018981f2="">\n <div class="column is-left" _v-018981f2="">\n <button @click="saveChanges()" class="button is-success is-small " :class="this.$store.state.loading ? \'is-loading\' : \'\' " :disabled="!showSave" _v-018981f2="">\n {{strings.save_changes}}\n </button>\n </div>\n </div>\n\n </div>\n'},function(t,e,n){var o,i;n(80),o=n(82),i=n(88),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(81);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(83),i=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:"exclusions",components:{FilterControl:i.default},data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,new_data:{}}},mounted:function(){},methods:{},computed:{site_settings:function(){return this.$store.state.site_settings}}}},function(t,e,n){var o,i;n(84),o=n(86),i=n(87),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(85);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(2);!function(t){t&&t.__esModule}(o);e.default={name:"filter-control",props:["type"],data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showSave:!1,selected_filter:"filename",selected_value:"",filter_operator:optimoleDashboardApp.strings.options_strings.filter_operator_contains,FILTER_TYPES:{EXT:"extension",URL:"page_url",FILENAME:"filename"}}},mounted:function(){},methods:{saveRule:function(){var t={};t[this.type]={},t[this.type][this.selected_filter]={},t[this.type][this.selected_filter][this.selected_value]=!0,this.selected_value.length<3||this.$store.dispatch("saveSettings",{settings:{filters:t}})},removeRule:function(t,e){var n={};n[this.type]={},n[this.type][t]={},n[this.type][t][e]="false",this.$store.dispatch("saveSettings",{settings:{filters:n}})},changeFilterType:function(t){this.selected_value="",t.target.value===this.FILTER_TYPES.EXT&&(this.selected_value="svg",this.filter_operator=this.strings.filter_operator_is),t.target.value===this.FILTER_TYPES.URL&&(this.filter_operator=this.strings.filter_operator_contains),t.target.value===this.FILTER_TYPES.FILENAME&&(this.filter_operator=this.strings.filter_operator_contains),this.selected_filter=t.target.value},getFilterOperator:function(){return this.filter_operator}},computed:{filters:function(){return this.$store.state.site_settings.filters[this.type]}}}},function(t,e){t.exports='\n <div :id="\'filter-type-\'+type" _v-2be63146="">\n <div class="field " _v-2be63146="">\n <label class="label column has-text-grey-dark" _v-2be63146="">\n <span v-if="type===\'lazyload\'" _v-2be63146="">{{strings.exclude_title_lazyload}}</span>\n <span v-if="type===\'optimize\'" _v-2be63146="">{{strings.exclude_title_optimize}}</span>\n </label>\n </div>\n <div class="field columns" _v-2be63146="">\n <div class="column is-paddingless is-full " _v-2be63146="">\n <div class="list" _v-2be63146="">\n <div class="list-item exclusion-filter" v-for="(item, index) in filters[this.FILTER_TYPES.EXT]" _v-2be63146="">\n <div class="control" _v-2be63146="">\n <div class="tags is-centered has-addons" _v-2be63146="">\n <a class="tag is-marginless is-link has-text-left" _v-2be63146=""><i _v-2be63146="">{{strings.exclude_ext_desc}}</i>\n <strong _v-2be63146="">{{index}}</strong></a>\n <a class="tag is-marginless is-delete" @click="removeRule(FILTER_TYPES.EXT,index)" _v-2be63146=""></a>\n </div>\n </div>\n </div>\n <div class="list-item exclusion-filter" v-for="(item, index) in filters[this.FILTER_TYPES.URL]" _v-2be63146="">\n <div class="control" _v-2be63146="">\n <div class="tags is-centered has-addons" _v-2be63146="">\n <a class="tag is-marginless is-link has-text-left" _v-2be63146=""><i _v-2be63146="">{{strings.exclude_url_desc}}</i>\n <strong _v-2be63146="">{{index}}</strong></a>\n <a class="tag is-marginless is-delete" @click="removeRule(FILTER_TYPES.URL,index)" _v-2be63146=""></a>\n </div>\n </div>\n </div>\n <div class="list-item exclusion-filter" v-for="(item, index) in filters[this.FILTER_TYPES.FILENAME]" _v-2be63146="">\n <div class="control" _v-2be63146="">\n <div class="tags is-centered has-addons" _v-2be63146="">\n <a class="tag is-marginless is-link has-text-left" _v-2be63146=""><i _v-2be63146="">{{strings.exclude_filename_desc}}</i>\n <strong _v-2be63146="">{{index}}</strong></a>\n <a class="tag is-marginless is-delete" @click="removeRule(FILTER_TYPES.FILENAME,index)" _v-2be63146=""></a>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="field columns" _v-2be63146="">\n <div class="field has-addons column has-addons-centered" _v-2be63146="">\n <p class="control " _v-2be63146="">\n <span class="select is-small" _v-2be63146="">\n <select @change="changeFilterType($event)" _v-2be63146="">\n <option :value="FILTER_TYPES.FILENAME" _v-2be63146="">{{strings.filter_filename}}</option>\n <option :value="FILTER_TYPES.EXT" _v-2be63146="">{{strings.filter_ext}}</option>\n <option :value="FILTER_TYPES.URL" _v-2be63146="">{{strings.filter_url}}</option>\n </select>\n </span>\n </p>\n <p class="control" _v-2be63146="">\n <a class="button is-small is-static" _v-2be63146="">\n {{getFilterOperator()}}\n </a>\n </p>\n <p class="control" _v-2be63146="">\n <span v-if="this.selected_filter===this.FILTER_TYPES.EXT" class="select is-small" _v-2be63146="">\n <select v-model="selected_value" _v-2be63146="">\n <option value="svg" _v-2be63146="">.SVG</option>\n <option value="jpg" _v-2be63146="">.JPG</option>\n <option value="png" _v-2be63146="">.PNG</option>\n </select>\n </span>\n <input v-else="" v-model="selected_value" class="input is-small" type="text" placeholder="word" _v-2be63146="">\n </p>\n <p class="control" _v-2be63146="">\n <a class="button is-primary is-small" :class="this.$store.state.loading ? \'is-loading\' : \'\' " @click="saveRule()" _v-2be63146="">\n {{strings.add_filter}}\n </a>\n </p>\n </div>\n </div>\n <p class="has-text-centered " v-if="this.selected_filter === FILTER_TYPES.URL" _v-2be63146="">\n <i _v-2be63146="">For homepage use <strong _v-2be63146="">home</strong> keyword.</i>\n </p>\n </div>\n'},function(t,e){t.exports='\n <div :class="{ \'saving--option\' : this.$store.state.loading }" _v-f5e043ba="">\n <div id="filters-list" _v-f5e043ba="">\n <div class="columns " _v-f5e043ba="">\n <filter-control :type="\'optimize\'" _v-f5e043ba=""></filter-control>\n </div>\n\t <hr _v-f5e043ba="">\n <div class="columns " v-if="this.$store.state.site_settings.lazyload === \'enabled\'" _v-f5e043ba="">\n <filter-control :type="\'lazyload\'" _v-f5e043ba=""></filter-control>\n </div>\n </div>\n\n </div>\n'},function(t,e,n){var o,i;n(90),o=n(92),i=n(93),t.exports=o||{},t.exports.__esModule&&(t.exports=t.exports.default),i&&(("function"==typeof t.exports?t.exports.options:t.exports).template=i)},function(t,e,n){var o=n(91);"string"==typeof o&&(o=[[t.i,o,""]]);n(1)(o,{});o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(0)(),e.push([t.i,"\n\n",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"lazyload",data:function(){return{strings:optimoleDashboardApp.strings.options_strings,all_strings:optimoleDashboardApp.strings,showSave:!1,new_data:{}}},mounted:function(){},methods:{saveChanges:function(){this.$store.dispatch("saveSettings",{settings:this.new_data})}},computed:{site_settings:function(){return this.$store.state.site_settings},lazyloadPlaceholder:{set:function(t){this.showSave=!0,this.new_data.lazyload_placeholder=t?"enabled":"disabled"},get:function(){return!("disabled"===this.site_settings.lazyload_placeholder)}}}}},function(t,e){t.exports='\n <div :class="{ \'saving--option\' : this.$store.state.loading }" _v-2356e1d0="">\n <div class="field columns" _v-2356e1d0="">\n <label class="label column has-text-grey-dark" _v-2356e1d0="">\n {{strings.enable_lazyload_placeholder_title}}\n <p class="is-italic has-text-weight-normal" _v-2356e1d0="">\n {{strings.enable_lazyload_placeholder_desc}}\n </p>\n </label>\n <div class="column is-3" _v-2356e1d0="">\n <toggle-button :class="\'has-text-dark\'" v-model="lazyloadPlaceholder" :disabled="this.$store.state.loading" :labels="{checked: strings.enabled, unchecked: strings.disabled}" :width="80" :height="25" color="#008ec2" _v-2356e1d0=""></toggle-button>\n </div>\n\n </div>\n <div class="field is-fullwidth columns " _v-2356e1d0="">\n <div class="column is-left" _v-2356e1d0="">\n <button @click="saveChanges()" class="button is-success is-small " :class="this.$store.state.loading ? \'is-loading\' : \'\' " :disabled="!showSave" _v-2356e1d0="">\n {{strings.save_changes}}\n </button>\n </div>\n </div>\n\n </div>\n'},function(t,e){t.exports='\n <div class="columns" _v-5187a250="">\n <aside id="optml-settings-menu" class="menu column is-2-fullhd is-3-desktop is-3-tablet is-hidden-mobile" _v-5187a250="">\n <ul class="menu-list optml-settings-submenu is-marginless" _v-5187a250="">\n <li _v-5187a250=""><a @click="changeTab(\'general\')" href="#" :class="tab === \'general\' ? \'is-active\' : \'\'" :title="all_strings.general_settings_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.general_settings_menu_item}}</a>\n </li>\n <li :class="isDisabled ? \'is-menu-disabled\' : \'\' " _v-5187a250=""><a @click="ToggleAdvanced()" href="#" title="General settings" _v-5187a250=""><span _v-5187a250="">{{all_strings.advanced_settings_menu_item}}</span>\n <span class=" dashicons advanced-link " :class="advancedOpen ? \'dashicons-arrow-down-alt2\' : \'dashicons-arrow-right-alt2\'" _v-5187a250=""></span>\n </a>\n <ul class="menu-list optml-settings-submenu is-marginless " :class=" ! advancedOpen ? \'is-hidden\' : \'\' " _v-5187a250="">\n <li _v-5187a250=""><a @click="changeTab(\'compression\')" href="#" :class="tab === \'compression\' ? \'is-active\' : \'\'" :title="all_strings.settings_compression_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.settings_compression_menu_item}}</a>\n </li>\n <li _v-5187a250=""><a @click="changeTab(\'resize\')" href="#" :class="tab === \'resize\' ? \'is-active\' : \'\'" :title="all_strings.settings_resize_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.settings_resize_menu_item}}</a>\n </li>\n <li v-if="this.$store.state.site_settings.lazyload===\'enabled\'" _v-5187a250=""><a @click="changeTab(\'lazyload\')" href="#" :class="tab === \'lazyload\' ? \'is-active\' : \'\'" :title="all_strings.lazyload_settings_menu_item+\' \'+all_strings.lazyload_settings_menu_item" _v-5187a250="">{{all_strings.lazyload_settings_menu_item}}</a>\n </li>\n <li _v-5187a250=""><a href="#" @click="changeTab(\'exclusions\')" :class="tab === \'exclusions\' ? \'is-active\' : \'\'" :title="all_strings.settings_exclusions_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.settings_exclusions_menu_item}}</a>\n </li>\n <li _v-5187a250=""><a @click="changeTab(\'watermark\')" href="#" :class="tab === \'watermark\' ? \'is-active\' : \'\'" :title="all_strings.watermarks_menu_item+\' \'+all_strings.settings_menu_item" _v-5187a250="">{{all_strings.watermarks_menu_item}}\n <span class=" optml-beta is-normal tag is-warning" _v-5187a250="">Beta</span></a></li>\n </ul>\n </li>\n </ul>\n </aside>\n <div :class="[{ \'saving--option\' : this.$store.state.loading, \'is-tab-disabled\':isDisabled},\'is-tab-\'+tab] " class=" column" _v-5187a250="">\n <div class="subtab-content" _v-5187a250="">\n <general v-if="tab === \'general\' " @update-status="updateGlobalState" _v-5187a250=""></general>\n <compression v-if="tab === \'compression\' " _v-5187a250=""></compression>\n <watermarks v-if="tab ===\'watermark\'" _v-5187a250=""></watermarks>\n <resize v-if="tab ===\'resize\'" _v-5187a250=""></resize>\n <lazyload v-if="tab ===\'lazyload\'" _v-5187a250=""></lazyload>\n <exclusions v-if="tab ===\'exclusions\'" _v-5187a250=""></exclusions>\n </div>\n </div>\n </div>\n'},function(t,e){t.exports='\n <div class="columns is-desktop">\n\n <div class="column ">\n <div class="card">\n <app-header></app-header>\n <div class="card-content">\n <div class="content">\n <connect-layout v-if="!this.$store.state.connected"></connect-layout>\n\n <transition name="slide-fade">\n <div v-if="this.$store.state.connected && ! this.$store.state.is_loaded" id="optml-loader">\n <div class="columns">\n <div class="column">\n\n <transition name="slide-fade">\n <h4 class="has-text-centered">{{this.getProgressMessage()}}</h4>\n </transition>\n </div>\n </div>\n <div class="columns">\n <div class=" column is-vertical-center ">\n <progress id="optml-progress-bar" class="progress is-medium is-info"\n :class="\'optml-progres-\'+(Math.floor(this.loading_percent/10))"\n max="100"></progress>\n </div>\n </div>\n <iframe :src="home" style="opacity:0;" ></iframe>\n </div>\n </transition>\n <transition name="fade" mode="out-in">\n <div v-if="this.$store.state.connected && this.$store.state.is_loaded">\n <div class="tabs is-left is-boxed is-medium">\n <ul class="is-marginless optml-tabs">\n <li :class="tab === \'dashboard\' ? \'is-active\' : \'\'">\n <a @click="changeTab(\'dashboard\')" class="is-size-6-mobile">\n <span class="icon is-size-6-mobile is-size-6-tablet dashicons dashicons-admin-home"></span>\n <span class="is-size-6-mobile is-size-6-touch ">{{strings.dashboard_menu_item}}</span>\n </a>\n </li>\n <li :class="tab === \'conflicts\' ? \'is-active\' : \'\'" v-if="conflictCount > 0">\n <a @click="changeTab(\'conflicts\')" class="is-size-6-mobile">\n <span class="icon is-size-6-mobile is-size-6-tablet dashicons dashicons-warning"></span>\n <span class="is-size-6-mobile is-size-6-touch">{{strings.conflicts_menu_item}}</span> \n <span class="tag is-rounded is-danger">{{conflictCount}}</span>\n </a>\n </li>\n <li :class="tab === \'settings\' ? \'is-active\' : \'\'">\n <a @click="changeTab(\'settings\')" class="is-size-6-mobile ">\n <span class="icon is-size-6-mobile is-size-6-tablet dashicons dashicons-admin-settings"></span>\n <span class="is-size-6-mobile is-size-6-touch">{{strings.settings_menu_item}}</span>\n </a>\n </li>\n\n </ul>\n </div>\n\n <div class="is-tab" v-if="tab === \'dashboard\' "\n :class="remove_images ? \'no-images\' : \'\' ">\n <div class="notification is-success" v-if="strings.notice_just_activated.length > 0"\n v-html="strings.notice_just_activated"></div>\n <api-key-form></api-key-form>\n <cdn-details v-if="this.$store.state.userData"></cdn-details>\n <hr/>\n <last-images :status="fetchStatus" v-if="! remove_images"></last-images>\n </div>\n <div class="is-tab" v-if=" tab === \'settings\'">\n <options></options>\n </div>\n <div class="is-tab" v-if=" tab === \'conflicts\'">\n <conflicts></conflicts>\n </div>\n </div>\n </transition>\n\n </div>\n </div>\n\n <div class="level-right">\n <p class="level-item"><a href="https://optimole.com" target="_blank">Optimole\n v{{strings.version}}</a></p>\n <p class="level-item"><a href="https://optimole.com/terms/"\n target="_blank">{{strings.terms_menu}}</a></p>\n <p class="level-item"><a href="https://optimole.com/privacy-policy/" target="_blank">{{strings.privacy_menu}}</a>\n </p>\n <p class="level-item"><a :href="\'https://speedtest.optimole.com/?url=\' + home " target="_blank">{{strings.testdrive_menu}}</a>\n </p>\n </div>\n </div>\n </div>\n <div v-if="this.$store.state.connected && this.$store.state.userData.plan === \'free\' "\n class="column is-narrow is-hidden-desktop-only is-hidden-tablet-only is-hidden-mobile">\n <div class="card optml-upgrade">\n <div class="card-header">\n <h3 class="is-size-5 card-header-title"><span class="dashicons dashicons-chart-line"></span>\n {{strings.upgrade.title}}</h3>\n </div>\n <div class="card-content">\n <ul>\n <li><span class="dashicons dashicons-yes"></span>{{strings.upgrade.reason_1}}</li>\n <li><span class="dashicons dashicons-yes"></span>{{strings.upgrade.reason_2}}</li>\n <li><span class="dashicons dashicons-yes"></span>{{strings.upgrade.reason_3}}</li>\n <li><span class="dashicons dashicons-yes"></span>{{strings.upgrade.reason_4}}</li>\n </ul>\n </div>\n <div class="card-footer ">\n <div class="card-footer-item">\n <a href="https://optimole.com#pricing" target="_blank"\n class="button is-centered is-small is-success"><span\n class="dashicons dashicons-external"></span>{{strings.upgrade.cta}}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n'},function(t,e,n){"use strict";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),a=o(i),r=n(97),s=o(r),l=n(6),p=o(l),c=n(99),d=o(c),m=n(100),u=o(m);a.default.use(s.default),a.default.use(p.default);var f=new s.default.Store({strict:!0,state:{isConnecting:!1,loading:!1,site_settings:optimoleDashboardApp.site_settings,connected:"yes"===optimoleDashboardApp.connection_status,is_loaded:"yes"===optimoleDashboardApp.connection_status,apiKey:optimoleDashboardApp.api_key?optimoleDashboardApp.api_key:"",apiKeyValidity:!0,connectError:"",sample_rate:{},apiError:!1,userData:optimoleDashboardApp.user_data?optimoleDashboardApp.user_data:null,optimizedImages:[],watermarks:[],conflicts:[]},mutations:d.default,actions:u.default});e.default=f},function(t,e,n){"use strict";function o(t){z&&(t._devtoolHook=z,z.emit("vuex:init",t),z.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){z.emit("vuex:mutation",t,e)}))}function i(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function a(t){return null!==t&&"object"==typeof t}function r(t){return t&&"function"==typeof t.then}function s(t,e,n){if(e.update(n),n.modules)for(var o in n.modules){if(!e.getChild(o))return;s(t.concat(o),e.getChild(o),n.modules[o])}}function l(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function p(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;d(t,n,[],t._modules.root,!0),c(t,n,e)}function c(t,e,n){var o=t._vm;t.getters={};var a=t._wrappedGetters,r={};i(a,function(e,n){r[n]=function(){return e(t)},Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var s=$.config.silent;$.config.silent=!0,t._vm=new $({data:{$$state:e},computed:r}),$.config.silent=s,t.strict&&v(t),o&&(n&&t._withCommit(function(){o._data.$$state=null}),$.nextTick(function(){return o.$destroy()}))}function d(t,e,n,o,i){var a=!n.length,r=t._modules.getNamespace(n);if(o.namespaced&&(t._modulesNamespaceMap[r]=o),!a&&!i){var s=g(e,n.slice(0,-1)),l=n[n.length-1];t._withCommit(function(){$.set(s,l,o.state)})}var p=o.context=m(t,r,n);o.forEachMutation(function(e,n){f(t,r+n,e,p)}),o.forEachAction(function(e,n){var o=e.root?n:r+n,i=e.handler||e;h(t,o,i,p)}),o.forEachGetter(function(e,n){b(t,r+n,e,p)}),o.forEachChild(function(o,a){d(t,e,n.concat(a),o,i)})}function m(t,e,n){var o=""===e,i={dispatch:o?t.dispatch:function(n,o,i){var a=x(n,o,i),r=a.payload,s=a.options,l=a.type;return s&&s.root||(l=e+l),t.dispatch(l,r)},commit:o?t.commit:function(n,o,i){var a=x(n,o,i),r=a.payload,s=a.options,l=a.type;s&&s.root||(l=e+l),t.commit(l,r,s)}};return Object.defineProperties(i,{getters:{get:o?function(){return t.getters}:function(){return u(t,e)}},state:{get:function(){return g(t.state,n)}}}),i}function u(t,e){var n={},o=e.length;return Object.keys(t.getters).forEach(function(i){if(i.slice(0,o)===e){var a=i.slice(o);Object.defineProperty(n,a,{get:function(){return t.getters[i]},enumerable:!0})}}),n}function f(t,e,n,o){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){n.call(t,o.state,e)})}function h(t,e,n,o){(t._actions[e]||(t._actions[e]=[])).push(function(e,i){var a=n.call(t,{dispatch:o.dispatch,commit:o.commit,getters:o.getters,state:o.state,rootGetters:t.getters,rootState:t.state},e,i);return r(a)||(a=Promise.resolve(a)),t._devtoolHook?a.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):a})}function b(t,e,n,o){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return n(o.state,o.getters,t.state,t.getters)})}function v(t){t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}function g(t,e){return e.length?e.reduce(function(t,e){return t[e]},t):t}function x(t,e,n){return a(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function y(t){$&&t===$||($=t,C($))}function w(t){return Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}})}function k(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function _(t,e,n){return t._modulesNamespaceMap[n]}Object.defineProperty(e,"__esModule",{value:!0}),n.d(e,"Store",function(){return j}),n.d(e,"install",function(){return y}),n.d(e,"mapState",function(){return T}),n.d(e,"mapMutations",function(){return D}),n.d(e,"mapGetters",function(){return P}),n.d(e,"mapActions",function(){return R}),n.d(e,"createNamespacedHelpers",function(){return M});/**
|
22 |
* vuex v2.5.0
|
23 |
* (c) 2017 Evan You
|
24 |
* @license MIT
|
inc/admin.php
CHANGED
@@ -62,6 +62,7 @@ class Optml_Admin {
|
|
62 |
$bgclasses = empty( $bgclasses ) ? '' : sprintf( '"%s"', implode( '","', (array) $bgclasses ) );
|
63 |
$watcher_classes = empty( $watcher_classes ) ? '' : sprintf( '"%s"', implode( '","', (array) $watcher_classes ) );
|
64 |
$default_network = ( $this->settings->get( 'network_optimization' ) === 'enabled' );
|
|
|
65 |
$output = sprintf(
|
66 |
'
|
67 |
<style type="text/css">
|
@@ -89,6 +90,7 @@ class Optml_Admin {
|
|
89 |
backgroundReplaceClasses: [%s],
|
90 |
watchClasses: [%s],
|
91 |
network_optimizations: %s,
|
|
|
92 |
quality: %d
|
93 |
}
|
94 |
|
@@ -101,6 +103,7 @@ class Optml_Admin {
|
|
101 |
$bgclasses,
|
102 |
$watcher_classes,
|
103 |
defined( 'OPTML_NETWORK_ON' ) && constant( 'OPTML_NETWORK_ON' ) ? ( OPTML_NETWORK_ON ? 'true' : 'false' ) : ( $default_network ? 'true' : 'false' ),
|
|
|
104 |
$this->settings->get_numeric_quality()
|
105 |
);
|
106 |
echo $output;
|
@@ -246,7 +249,8 @@ class Optml_Admin {
|
|
246 |
if ( $service_data['plan'] !== 'free' ) {
|
247 |
return false;
|
248 |
}
|
249 |
-
|
|
|
250 |
return false;
|
251 |
}
|
252 |
|
@@ -372,7 +376,9 @@ class Optml_Admin {
|
|
372 |
* @return array Altered hints array.
|
373 |
*/
|
374 |
public function add_dns_prefetch( $hints, $relation_type ) {
|
375 |
-
if ( 'dns-prefetch' !== $relation_type
|
|
|
|
|
376 |
return $hints;
|
377 |
}
|
378 |
if ( ! $this->settings->is_connected() ) {
|
@@ -381,10 +387,10 @@ class Optml_Admin {
|
|
381 |
if ( ! $this->settings->is_enabled() ) {
|
382 |
return $hints;
|
383 |
}
|
384 |
-
$hints[] = sprintf( '
|
385 |
|
386 |
-
if (
|
387 |
-
$hints[] = sprintf( '
|
388 |
}
|
389 |
|
390 |
return $hints;
|
@@ -503,11 +509,13 @@ class Optml_Admin {
|
|
503 |
' <a href="https://dashboard.optimole.com/register" target="_blank">optimole.com</a>'
|
504 |
),
|
505 |
'account_needed_subtitle_1' => sprintf(
|
506 |
-
__( 'You will get access to our image optimization service for %1$sFREE%2$s in the limit of %3$
|
507 |
'<strong>',
|
508 |
'</strong>',
|
509 |
'<strong>',
|
510 |
-
'</strong>'
|
|
|
|
|
511 |
),
|
512 |
'account_needed_subtitle_2' => sprintf(
|
513 |
__( 'Bonus, if you dont use a CDN, we got you covered, we will serve the images using CloudFront CDN.', 'optimole-wp' )
|
@@ -548,6 +556,8 @@ The root cause might be either a security plugin which blocks this feature or so
|
|
548 |
'toggle_ab_item' => __( 'Admin bar status', 'optimole-wp' ),
|
549 |
'toggle_lazyload' => __( 'Scale images & Lazy load', 'optimole-wp' ),
|
550 |
'enable_image_replace' => __( 'Enable image replacement', 'optimole-wp' ),
|
|
|
|
|
551 |
'enable_network_opt_title' => __( 'Enable network based optimizations', 'optimole-wp' ),
|
552 |
'enable_resize_smart_title' => __( 'Enable Smart Cropping', 'optimole-wp' ),
|
553 |
'enable_lazyload_placeholder_title' => __( 'Enable generic lazyload placeholder', 'optimole-wp' ),
|
62 |
$bgclasses = empty( $bgclasses ) ? '' : sprintf( '"%s"', implode( '","', (array) $bgclasses ) );
|
63 |
$watcher_classes = empty( $watcher_classes ) ? '' : sprintf( '"%s"', implode( '","', (array) $watcher_classes ) );
|
64 |
$default_network = ( $this->settings->get( 'network_optimization' ) === 'enabled' );
|
65 |
+
$retina_ready = ! ( $this->settings->get( 'retina_images' ) === 'enabled' );
|
66 |
$output = sprintf(
|
67 |
'
|
68 |
<style type="text/css">
|
90 |
backgroundReplaceClasses: [%s],
|
91 |
watchClasses: [%s],
|
92 |
network_optimizations: %s,
|
93 |
+
ignoreDpr: %s,
|
94 |
quality: %d
|
95 |
}
|
96 |
|
103 |
$bgclasses,
|
104 |
$watcher_classes,
|
105 |
defined( 'OPTML_NETWORK_ON' ) && constant( 'OPTML_NETWORK_ON' ) ? ( OPTML_NETWORK_ON ? 'true' : 'false' ) : ( $default_network ? 'true' : 'false' ),
|
106 |
+
$retina_ready ? 'true' : 'false',
|
107 |
$this->settings->get_numeric_quality()
|
108 |
);
|
109 |
echo $output;
|
249 |
if ( $service_data['plan'] !== 'free' ) {
|
250 |
return false;
|
251 |
}
|
252 |
+
$visitors = isset( $service_data['visitors_limit'] ) ? (int) $service_data['visitors_limit'] : 0;
|
253 |
+
if ( $service_data['usage'] < 800 && $visitors === 0 ) {
|
254 |
return false;
|
255 |
}
|
256 |
|
376 |
* @return array Altered hints array.
|
377 |
*/
|
378 |
public function add_dns_prefetch( $hints, $relation_type ) {
|
379 |
+
if ( 'dns-prefetch' !== $relation_type &&
|
380 |
+
'preconnect' !== $relation_type
|
381 |
+
) {
|
382 |
return $hints;
|
383 |
}
|
384 |
if ( ! $this->settings->is_connected() ) {
|
387 |
if ( ! $this->settings->is_enabled() ) {
|
388 |
return $hints;
|
389 |
}
|
390 |
+
$hints[] = sprintf( 'https://%s', $this->settings->get_cdn_url() );
|
391 |
|
392 |
+
if ( $this->settings->use_lazyload() ) {
|
393 |
+
$hints[] = sprintf( 'https://%s', OPTML_JS_CDN );
|
394 |
}
|
395 |
|
396 |
return $hints;
|
509 |
' <a href="https://dashboard.optimole.com/register" target="_blank">optimole.com</a>'
|
510 |
),
|
511 |
'account_needed_subtitle_1' => sprintf(
|
512 |
+
__( 'You will get access to our image optimization service for %1$sFREE%2$s in the limit of %3$s5k%4$s %5$svisitors%6$s per month. ', 'optimole-wp' ),
|
513 |
'<strong>',
|
514 |
'</strong>',
|
515 |
'<strong>',
|
516 |
+
'</strong>',
|
517 |
+
'<a href="https://docs.optimole.com/article/1134-how-optimole-counts-the-number-of-visitors" target="_blank">',
|
518 |
+
'</a>'
|
519 |
),
|
520 |
'account_needed_subtitle_2' => sprintf(
|
521 |
__( 'Bonus, if you dont use a CDN, we got you covered, we will serve the images using CloudFront CDN.', 'optimole-wp' )
|
556 |
'toggle_ab_item' => __( 'Admin bar status', 'optimole-wp' ),
|
557 |
'toggle_lazyload' => __( 'Scale images & Lazy load', 'optimole-wp' ),
|
558 |
'enable_image_replace' => __( 'Enable image replacement', 'optimole-wp' ),
|
559 |
+
'enable_retina_title' => __( 'Enable Retina images', 'optimole-wp' ),
|
560 |
+
'enable_retina_desc' => __( 'Deliver retina ready images to your visitors', 'optimole-wp' ),
|
561 |
'enable_network_opt_title' => __( 'Enable network based optimizations', 'optimole-wp' ),
|
562 |
'enable_resize_smart_title' => __( 'Enable Smart Cropping', 'optimole-wp' ),
|
563 |
'enable_lazyload_placeholder_title' => __( 'Enable generic lazyload placeholder', 'optimole-wp' ),
|
inc/api.php
CHANGED
@@ -139,8 +139,9 @@ final class Optml_Api {
|
|
139 |
'optml/v1/user/register-remote',
|
140 |
'POST',
|
141 |
array(
|
142 |
-
'email'
|
143 |
-
'
|
|
|
144 |
)
|
145 |
);
|
146 |
}
|
139 |
'optml/v1/user/register-remote',
|
140 |
'POST',
|
141 |
array(
|
142 |
+
'email' => $email,
|
143 |
+
'version' => OPTML_VERSION,
|
144 |
+
'site' => get_home_url(),
|
145 |
)
|
146 |
);
|
147 |
}
|
inc/compatibilities/cache_enabler.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class Optml_cache_enabler.
|
5 |
+
*
|
6 |
+
* @reason Cache_enabler stores the content of the page before Optimole starts replacing url's
|
7 |
+
*/
|
8 |
+
class Optml_cache_enabler extends Optml_compatibility {
|
9 |
+
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Should we load the integration logic.
|
13 |
+
*
|
14 |
+
* @return bool Should we load.
|
15 |
+
*/
|
16 |
+
function should_load() {
|
17 |
+
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
18 |
+
|
19 |
+
return is_plugin_active( 'cache-enabler/cache-enabler.php' );
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Register integration details.
|
24 |
+
*/
|
25 |
+
public function register() {
|
26 |
+
add_filter( 'cache_enabler_before_store', [ Optml_Main::instance()->manager, 'replace_content' ], PHP_INT_MAX, 1 );
|
27 |
+
}
|
28 |
+
|
29 |
+
}
|
inc/lazyload_replacer.php
CHANGED
@@ -200,6 +200,8 @@ final class Optml_Lazyload_Replacer extends Optml_App_Replacer {
|
|
200 |
if ( false === Optml_Filters::should_do_image( $url, self::$filters[ Optml_Settings::FILTER_TYPE_LAZYLOAD ][ Optml_Settings::FILTER_FILENAME ] ) ) {
|
201 |
return false;
|
202 |
}
|
|
|
|
|
203 |
$type = wp_check_filetype(
|
204 |
basename( $url ),
|
205 |
Optml_Config::$extensions
|
200 |
if ( false === Optml_Filters::should_do_image( $url, self::$filters[ Optml_Settings::FILTER_TYPE_LAZYLOAD ][ Optml_Settings::FILTER_FILENAME ] ) ) {
|
201 |
return false;
|
202 |
}
|
203 |
+
$url = strtok( $url, '?' );
|
204 |
+
|
205 |
$type = wp_check_filetype(
|
206 |
basename( $url ),
|
207 |
Optml_Config::$extensions
|
inc/manager.php
CHANGED
@@ -64,6 +64,7 @@ final class Optml_Manager {
|
|
64 |
'metaslider',
|
65 |
'essential_grid',
|
66 |
'yith_quick_view',
|
|
|
67 |
);
|
68 |
|
69 |
/**
|
@@ -128,7 +129,7 @@ final class Optml_Manager {
|
|
128 |
if ( ( is_admin() && ! self::is_ajax_request() ) || ! $this->settings->is_connected() || ! $this->settings->is_enabled() || is_customize_preview() ) {
|
129 |
return false; // @codeCoverageIgnore
|
130 |
}
|
131 |
-
if ( array_key_exists( 'preview', $_GET ) &&
|
132 |
return false; // @codeCoverageIgnore
|
133 |
}
|
134 |
|
@@ -138,7 +139,10 @@ final class Optml_Manager {
|
|
138 |
if ( array_key_exists( 'elementor-preview', $_GET ) && ! empty( $_GET['elementor-preview'] ) ) {
|
139 |
return false; // @codeCoverageIgnore
|
140 |
}
|
141 |
-
if ( array_key_exists( 'ct_builder', $_GET ) && $_GET['ct_builder']
|
|
|
|
|
|
|
142 |
return false; // @codeCoverageIgnore
|
143 |
}
|
144 |
if ( array_key_exists( 'context', $_GET ) && $_GET['context'] == 'edit' ) {
|
@@ -275,7 +279,7 @@ final class Optml_Manager {
|
|
275 |
* @return array array of urls.
|
276 |
*/
|
277 |
public function extract_urls_from_json( $content ) {
|
278 |
-
$regex = '/(?<!(=|\\\\)(?:"|\'|"))(?:http(?:s?):)(?:[\/\\\\|.|\w|\s
|
279 |
preg_match_all(
|
280 |
$regex,
|
281 |
$content,
|
@@ -296,7 +300,8 @@ final class Optml_Manager {
|
|
296 |
|
297 |
$urls = array_map(
|
298 |
function ( $value ) {
|
299 |
-
|
|
|
300 |
},
|
301 |
$urls
|
302 |
);
|
@@ -324,6 +329,7 @@ final class Optml_Manager {
|
|
324 |
$urls = array_map(
|
325 |
function ( $url ) {
|
326 |
$is_slashed = strpos( $url, '\/' ) !== false;
|
|
|
327 |
$new_url = apply_filters( 'optml_content_url', $url );
|
328 |
|
329 |
return $is_slashed ? addcslashes( $new_url, '/' ) : $new_url;
|
@@ -481,7 +487,7 @@ final class Optml_Manager {
|
|
481 |
* @return array
|
482 |
*/
|
483 |
public function extract_image_urls_from_content( $content ) {
|
484 |
-
$regex = '/(?:http(?:s?):)(?:[\/\\\\|.|\w|\s
|
485 |
preg_match_all(
|
486 |
$regex,
|
487 |
$content,
|
64 |
'metaslider',
|
65 |
'essential_grid',
|
66 |
'yith_quick_view',
|
67 |
+
'cache_enabler',
|
68 |
);
|
69 |
|
70 |
/**
|
129 |
if ( ( is_admin() && ! self::is_ajax_request() ) || ! $this->settings->is_connected() || ! $this->settings->is_enabled() || is_customize_preview() ) {
|
130 |
return false; // @codeCoverageIgnore
|
131 |
}
|
132 |
+
if ( array_key_exists( 'preview', $_GET ) && ! empty( $_GET['preview'] ) ) {
|
133 |
return false; // @codeCoverageIgnore
|
134 |
}
|
135 |
|
139 |
if ( array_key_exists( 'elementor-preview', $_GET ) && ! empty( $_GET['elementor-preview'] ) ) {
|
140 |
return false; // @codeCoverageIgnore
|
141 |
}
|
142 |
+
if ( array_key_exists( 'ct_builder', $_GET ) && ! empty( $_GET['ct_builder'] ) ) {
|
143 |
+
return false; // @codeCoverageIgnore
|
144 |
+
}
|
145 |
+
if ( array_key_exists( 'et_fb', $_GET ) && ! empty( $_GET['et_fb'] ) ) {
|
146 |
return false; // @codeCoverageIgnore
|
147 |
}
|
148 |
if ( array_key_exists( 'context', $_GET ) && $_GET['context'] == 'edit' ) {
|
279 |
* @return array array of urls.
|
280 |
*/
|
281 |
public function extract_urls_from_json( $content ) {
|
282 |
+
$regex = '/(?<!(=|\\\\)(?:"|\'|"))(?:http(?:s?):)(?:[\/\\\\|.|\w|\s|@|%|-])*\.(?:' . implode( '|', array_keys( Optml_Config::$extensions ) ) . ')(?:\??[\w|=|&|\-|\.|:]*)/';
|
283 |
preg_match_all(
|
284 |
$regex,
|
285 |
$content,
|
300 |
|
301 |
$urls = array_map(
|
302 |
function ( $value ) {
|
303 |
+
$value = str_replace( '"', '', $value );
|
304 |
+
return rtrim( $value, '\\";\'' );
|
305 |
},
|
306 |
$urls
|
307 |
);
|
329 |
$urls = array_map(
|
330 |
function ( $url ) {
|
331 |
$is_slashed = strpos( $url, '\/' ) !== false;
|
332 |
+
$url = html_entity_decode( $url );
|
333 |
$new_url = apply_filters( 'optml_content_url', $url );
|
334 |
|
335 |
return $is_slashed ? addcslashes( $new_url, '/' ) : $new_url;
|
487 |
* @return array
|
488 |
*/
|
489 |
public function extract_image_urls_from_content( $content ) {
|
490 |
+
$regex = '/(?:http(?:s?):)(?:[\/\\\\|.|\w|\s|@|%|-])*\.(?:' . implode( '|', array_keys( Optml_Config::$extensions ) ) . ')(?:\?{1}[\w|=|&|\-|\.|:|;]*)?/';
|
491 |
preg_match_all(
|
492 |
$regex,
|
493 |
$content,
|
inc/settings.php
CHANGED
@@ -24,6 +24,7 @@ class Optml_Settings {
|
|
24 |
'lazyload' => 'disabled',
|
25 |
'network_optimization' => 'disabled',
|
26 |
'lazyload_placeholder' => 'disabled',
|
|
|
27 |
'resize_smart' => 'disabled',
|
28 |
'filters' => [],
|
29 |
'quality' => 'auto',
|
@@ -108,6 +109,7 @@ class Optml_Settings {
|
|
108 |
case 'image_replacer':
|
109 |
case 'network_optimization':
|
110 |
case 'lazyload_placeholder':
|
|
|
111 |
case 'resize_smart':
|
112 |
$sanitized_value = $this->to_map_values( $value, array( 'enabled', 'disabled' ), 'enabled' );
|
113 |
break;
|
@@ -254,6 +256,7 @@ class Optml_Settings {
|
|
254 |
'admin_bar_item' => $this->get( 'admin_bar_item' ),
|
255 |
'lazyload' => $this->get( 'lazyload' ),
|
256 |
'network_optimization' => $this->get( 'network_optimization' ),
|
|
|
257 |
'lazyload_placeholder' => $this->get( 'lazyload_placeholder' ),
|
258 |
'resize_smart' => $this->get( 'resize_smart' ),
|
259 |
'image_replacer' => $this->get( 'image_replacer' ),
|
24 |
'lazyload' => 'disabled',
|
25 |
'network_optimization' => 'disabled',
|
26 |
'lazyload_placeholder' => 'disabled',
|
27 |
+
'retina_images' => 'disabled',
|
28 |
'resize_smart' => 'disabled',
|
29 |
'filters' => [],
|
30 |
'quality' => 'auto',
|
109 |
case 'image_replacer':
|
110 |
case 'network_optimization':
|
111 |
case 'lazyload_placeholder':
|
112 |
+
case 'retina_images':
|
113 |
case 'resize_smart':
|
114 |
$sanitized_value = $this->to_map_values( $value, array( 'enabled', 'disabled' ), 'enabled' );
|
115 |
break;
|
256 |
'admin_bar_item' => $this->get( 'admin_bar_item' ),
|
257 |
'lazyload' => $this->get( 'lazyload' ),
|
258 |
'network_optimization' => $this->get( 'network_optimization' ),
|
259 |
+
'retina_images' => $this->get( 'retina_images' ),
|
260 |
'lazyload_placeholder' => $this->get( 'lazyload_placeholder' ),
|
261 |
'resize_smart' => $this->get( 'resize_smart' ),
|
262 |
'image_replacer' => $this->get( 'image_replacer' ),
|
optimole-wp.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Plugin Name: Image optimization service by Optimole
|
4 |
* Description: Complete handling of your website images.
|
5 |
-
* Version: 2.1.
|
6 |
* Author: Optimole
|
7 |
* Author URI: https://optimole.com
|
8 |
* License: GPL-2.0+
|
@@ -75,7 +75,7 @@ function optml() {
|
|
75 |
define( 'OPTML_URL', plugin_dir_url( __FILE__ ) );
|
76 |
define( 'OPTML_JS_CDN', 'd5jmkjjpb7yfg.cloudfront.net' );
|
77 |
define( 'OPTML_PATH', plugin_dir_path( __FILE__ ) );
|
78 |
-
define( 'OPTML_VERSION', '2.1.
|
79 |
define( 'OPTML_NAMESPACE', 'optml' );
|
80 |
define( 'OPTML_BASEFILE', __FILE__ );
|
81 |
// Fallback for old PHP versions when this constant is not defined.
|
2 |
/**
|
3 |
* Plugin Name: Image optimization service by Optimole
|
4 |
* Description: Complete handling of your website images.
|
5 |
+
* Version: 2.1.2
|
6 |
* Author: Optimole
|
7 |
* Author URI: https://optimole.com
|
8 |
* License: GPL-2.0+
|
75 |
define( 'OPTML_URL', plugin_dir_url( __FILE__ ) );
|
76 |
define( 'OPTML_JS_CDN', 'd5jmkjjpb7yfg.cloudfront.net' );
|
77 |
define( 'OPTML_PATH', plugin_dir_path( __FILE__ ) );
|
78 |
+
define( 'OPTML_VERSION', '2.1.2' );
|
79 |
define( 'OPTML_NAMESPACE', 'optml' );
|
80 |
define( 'OPTML_BASEFILE', __FILE__ );
|
81 |
// Fallback for old PHP versions when this constant is not defined.
|
readme.txt
CHANGED
@@ -7,7 +7,7 @@ Requires PHP: 5.4
|
|
7 |
License: GPLv3
|
8 |
License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
|
9 |
|
10 |
-
|
11 |
|
12 |
== Description ==
|
13 |
|
@@ -34,21 +34,21 @@ So, if you have been looking for one plugin that provides lazy loading with a CD
|
|
34 |
|
35 |
|
36 |
**How does it do all these great things?**
|
37 |
-
Optimole's format based optimization is handled in the cloud on a case-by-case basis. Once you have the plugin installed, Optimole will replace all of your image URLs with cloud-based URLs. We don't replace any images on your website.
|
38 |
When the image is requested, Optimole will apply the specific transformations required by the device and deliver it to your visitors. This means every image is perfectly sized for every device. The final result will be cached for a month to ensure ongoing fast delivery and more site speed.
|
39 |
|
40 |
**How many images can be optimized?**
|
41 |
-
With the basic plan, you will be able to optimize
|
42 |
Better yet. The free version is fully functional and includes all of the following great features.
|
43 |
|
44 |
**Format Based Optimization**
|
45 |
-
Our cloud-based transformation process means we can
|
46 |
|
47 |
**Image Optimization**
|
48 |
Our algorithms crunch the numbers to provide the best lossy or lossless optimization for the best-looking image at the smallest size.
|
49 |
|
50 |
**Exact Used Size**
|
51 |
-
Optimole will use just one image and resize it delivering a responsive image to fit perfectly on your visitors' devices. No more awkward guesses at potential screen widths.
|
52 |
|
53 |
**Retina Support**
|
54 |
Optimole can detect Retina screens and deliver an image with the perfect Digital Pixel Ratio (DPR).
|
@@ -57,13 +57,13 @@ Optimole can detect Retina screens and deliver an image with the perfect Digital
|
|
57 |
If you'd like to keep the most interesting part of an image; then you can enable smart cropping to help keep the image well sized without losing focus.
|
58 |
|
59 |
**No Content Shifting**
|
60 |
-
The lazy load option is perfectly sized for the container to provide a seamless viewing experience without any content shifting.
|
61 |
|
62 |
**Watermarks**
|
63 |
Who has time for adding watermarks? Optimole will do the hard work for you. Just set it up and pick your preferred location and Optimole will add the watermark to all of your future images.
|
64 |
|
65 |
**Downgrade Quality For Slower Connections**
|
66 |
-
Optimole provides an option to downgrade the image quality when it detects a slower network.
|
67 |
**Compatibility**
|
68 |
Optimole loves page builders and has unique tweaks to solve image replacements. It also has full compatibility with the new block editor in WordPress 5.0
|
69 |
|
@@ -88,6 +88,26 @@ Premium users will be able to optimize 10GB images per month with a 50GB viewing
|
|
88 |
|
89 |
== Changelog ==
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
#### [Version 2.1.1](https://github.com/Codeinwp/optimole-wp/compare/v2.1.0...v2.1.1) (2019-07-22)
|
92 |
|
93 |
* **Bug Fixes**
|
7 |
License: GPLv3
|
8 |
License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
|
9 |
|
10 |
+
Automatically compress, optimize and serve scaled images along with next-gen WebP all from CloudFront CDN. Lazy load included ⚡
|
11 |
|
12 |
== Description ==
|
13 |
|
34 |
|
35 |
|
36 |
**How does it do all these great things?**
|
37 |
+
Optimole's format based optimization is handled in the cloud on a case-by-case basis. Once you have the plugin installed, Optimole will replace all of your image URLs with cloud-based URLs. We don't replace any images on your website, we compress images on the fly.
|
38 |
When the image is requested, Optimole will apply the specific transformations required by the device and deliver it to your visitors. This means every image is perfectly sized for every device. The final result will be cached for a month to ensure ongoing fast delivery and more site speed.
|
39 |
|
40 |
**How many images can be optimized?**
|
41 |
+
With the basic plan, you will be able to optimize unmetered number of images for up to 5k monthly active [users](https://docs.optimole.com/article/1134-how-optimole-counts-the-number-of-visitors). All delivered from 7 edge locations all over the world.
|
42 |
Better yet. The free version is fully functional and includes all of the following great features.
|
43 |
|
44 |
**Format Based Optimization**
|
45 |
+
Our cloud-based transformation process means we can optimize images based on the format as well as serve images in next-gen formats. If your visitor is using a WebP capable browser, then Optimole will convert to WebP the image and send it to their device.
|
46 |
|
47 |
**Image Optimization**
|
48 |
Our algorithms crunch the numbers to provide the best lossy or lossless optimization for the best-looking image at the smallest size.
|
49 |
|
50 |
**Exact Used Size**
|
51 |
+
Optimole will use just one image and resize it delivering a responsive image to fit perfectly on your visitors' devices. No more awkward guesses at potential screen widths. Serve scaled images instantly.
|
52 |
|
53 |
**Retina Support**
|
54 |
Optimole can detect Retina screens and deliver an image with the perfect Digital Pixel Ratio (DPR).
|
57 |
If you'd like to keep the most interesting part of an image; then you can enable smart cropping to help keep the image well sized without losing focus.
|
58 |
|
59 |
**No Content Shifting**
|
60 |
+
The lazy load option defer offscreen images and is perfectly sized for the container to provide a seamless viewing experience without any content shifting.
|
61 |
|
62 |
**Watermarks**
|
63 |
Who has time for adding watermarks? Optimole will do the hard work for you. Just set it up and pick your preferred location and Optimole will add the watermark to all of your future images.
|
64 |
|
65 |
**Downgrade Quality For Slower Connections**
|
66 |
+
Optimole provides an option to downgrade the image quality when it detects a slower network. Efficiently encode images by making up to 40% smaller with this neat feature to help visitors in a bottleneck.
|
67 |
**Compatibility**
|
68 |
Optimole loves page builders and has unique tweaks to solve image replacements. It also has full compatibility with the new block editor in WordPress 5.0
|
69 |
|
88 |
|
89 |
== Changelog ==
|
90 |
|
91 |
+
#### [Version 2.1.2](https://github.com/Codeinwp/optimole-wp/compare/v2.1.1...v2.1.2) (2019-09-25)
|
92 |
+
|
93 |
+
* **Bug Fixes**
|
94 |
+
* adds preconnect hint for image domain and js library domain ([11b697d](https://github.com/Codeinwp/optimole-wp/commit/11b697d))
|
95 |
+
* compatibility with cache_enabler [#136](https://github.com/Codeinwp/optimole-wp/issues/136) ([483262f](https://github.com/Codeinwp/optimole-wp/commit/483262f))
|
96 |
+
* improve checking for editing context when the replacement should be off ([e7510f6](https://github.com/Codeinwp/optimole-wp/commit/e7510f6))
|
97 |
+
* lazyload query urls part of [#145](https://github.com/Codeinwp/optimole-wp/issues/145) ([a048f68](https://github.com/Codeinwp/optimole-wp/commit/a048f68))
|
98 |
+
* preload lazyload js file when lazyload setting is active ([828e1de](https://github.com/Codeinwp/optimole-wp/commit/828e1de))
|
99 |
+
* remove replacement on Divi theme builder ([86ab6d2](https://github.com/Codeinwp/optimole-wp/commit/86ab6d2))
|
100 |
+
* replacement was not working for urls with special chars ([48a4966](https://github.com/Codeinwp/optimole-wp/commit/48a4966))
|
101 |
+
* replacing url's with query strings without the query in the modified url [#141](https://github.com/Codeinwp/optimole-wp/issues/141) ([0025559](https://github.com/Codeinwp/optimole-wp/commit/0025559))
|
102 |
+
* replacing url's with regex in <a> tags [#141](https://github.com/Codeinwp/optimole-wp/issues/141) ([4b2264f](https://github.com/Codeinwp/optimole-wp/commit/4b2264f))
|
103 |
+
* resource hints condition check [skip release] ([a0f30e7](https://github.com/Codeinwp/optimole-wp/commit/a0f30e7))
|
104 |
+
|
105 |
+
* **Features**
|
106 |
+
* adds retina settings control which enable/disable serving of HiDPI images ([73c8712](https://github.com/Codeinwp/optimole-wp/commit/73c8712))
|
107 |
+
* adds visitors based plan integration ([ea07a94](https://github.com/Codeinwp/optimole-wp/commit/ea07a94))
|
108 |
+
|
109 |
+
|
110 |
+
|
111 |
#### [Version 2.1.1](https://github.com/Codeinwp/optimole-wp/compare/v2.1.0...v2.1.1) (2019-07-22)
|
112 |
|
113 |
* **Bug Fixes**
|
themeisle-hash.json
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"optimole-wp.php":"
|
1 |
+
{"optimole-wp.php":"a7cfb612866660d6063b0ef494f43263"}
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit86d4bbcb0c93c7a69621c7a526c43e6f::getLoader();
|
vendor/codeinwp/themeisle-sdk/CHANGELOG.md
CHANGED
@@ -1,3 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
## [3.0.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.3...v3.0.4) (2019-01-28)
|
2 |
|
3 |
|
1 |
+
## [3.1.6](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.5...v3.1.6) (2019-09-24)
|
2 |
+
|
3 |
+
|
4 |
+
### Bug Fixes
|
5 |
+
|
6 |
+
* remove license related options when deactivated ([02cd6ce](https://github.com/Codeinwp/themeisle-sdk/commit/02cd6ce))
|
7 |
+
* remove license related options when deactivated ([d3c1a1f](https://github.com/Codeinwp/themeisle-sdk/commit/d3c1a1f))
|
8 |
+
|
9 |
+
## [3.1.5](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.4...v3.1.5) (2019-09-11)
|
10 |
+
|
11 |
+
|
12 |
+
### Bug Fixes
|
13 |
+
|
14 |
+
* allow unloading certain module features ([2a2559a](https://github.com/Codeinwp/themeisle-sdk/commit/2a2559a))
|
15 |
+
* license activation workflow, show error message when failed to a… ([ade795c](https://github.com/Codeinwp/themeisle-sdk/commit/ade795c))
|
16 |
+
* license activation workflow, show error message when failed to activate ([2f5cbae](https://github.com/Codeinwp/themeisle-sdk/commit/2f5cbae))
|
17 |
+
|
18 |
+
## [3.1.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.3...v3.1.4) (2019-08-23)
|
19 |
+
|
20 |
+
|
21 |
+
### Bug Fixes
|
22 |
+
|
23 |
+
* license key was missing on get_version call ([365cde6](https://github.com/Codeinwp/themeisle-sdk/commit/365cde6))
|
24 |
+
* license key was missing on get_version call ([c02f225](https://github.com/Codeinwp/themeisle-sdk/commit/c02f225))
|
25 |
+
|
26 |
+
## [3.1.3](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.2...v3.1.3) (2019-08-20)
|
27 |
+
|
28 |
+
|
29 |
+
### Bug Fixes
|
30 |
+
|
31 |
+
* license deactivation behaviour https://github.com/Codeinwp/visua… ([59c4afe](https://github.com/Codeinwp/themeisle-sdk/commit/59c4afe))
|
32 |
+
* license deactivation behaviour https://github.com/Codeinwp/visualizer-pro/issues/192 ([f641e18](https://github.com/Codeinwp/themeisle-sdk/commit/f641e18))
|
33 |
+
|
34 |
+
## [3.1.2](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.1...v3.1.2) (2019-08-12)
|
35 |
+
|
36 |
+
|
37 |
+
### Bug Fixes
|
38 |
+
|
39 |
+
* phpunit test case ([efe851c](https://github.com/Codeinwp/themeisle-sdk/commit/efe851c))
|
40 |
+
* url format for license endpoint, improve changelog handling and license checks ([a492c68](https://github.com/Codeinwp/themeisle-sdk/commit/a492c68))
|
41 |
+
|
42 |
+
## [3.1.1](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.0...v3.1.1) (2019-08-08)
|
43 |
+
|
44 |
+
|
45 |
+
### Bug Fixes
|
46 |
+
|
47 |
+
* adds is_file for file existence check ([d1205c4](https://github.com/Codeinwp/themeisle-sdk/commit/d1205c4))
|
48 |
+
* adds is_file for file existence check ([be119c1](https://github.com/Codeinwp/themeisle-sdk/commit/be119c1))
|
49 |
+
|
50 |
+
# [3.1.0](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.10...v3.1.0) (2019-08-05)
|
51 |
+
|
52 |
+
|
53 |
+
### Bug Fixes
|
54 |
+
|
55 |
+
* adds extra comments for rest of the options, fix [#64](https://github.com/Codeinwp/themeisle-sdk/issues/64) ([018b22f](https://github.com/Codeinwp/themeisle-sdk/commit/018b22f))
|
56 |
+
* hide license key when active under a password mask, fix [#67](https://github.com/Codeinwp/themeisle-sdk/issues/67) ([c0633c2](https://github.com/Codeinwp/themeisle-sdk/commit/c0633c2))
|
57 |
+
* new uninstall feedback popup issues ([5bda4bd](https://github.com/Codeinwp/themeisle-sdk/commit/5bda4bd))
|
58 |
+
* phpcs indentation errors ([d59ed4f](https://github.com/Codeinwp/themeisle-sdk/commit/d59ed4f))
|
59 |
+
* undefined notices on license check, fix [#60](https://github.com/Codeinwp/themeisle-sdk/issues/60) ([7f56a97](https://github.com/Codeinwp/themeisle-sdk/commit/7f56a97))
|
60 |
+
* uninstall feedback popup placement [[#61](https://github.com/Codeinwp/themeisle-sdk/issues/61)] ([1102d6c](https://github.com/Codeinwp/themeisle-sdk/commit/1102d6c))
|
61 |
+
|
62 |
+
|
63 |
+
### Features
|
64 |
+
|
65 |
+
* new product feedback popup ([f0dbab3](https://github.com/Codeinwp/themeisle-sdk/commit/f0dbab3))
|
66 |
+
* new uninstall feedback form for themes ([8a29f21](https://github.com/Codeinwp/themeisle-sdk/commit/8a29f21))
|
67 |
+
|
68 |
+
## [3.0.10](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.9...v3.0.10) (2019-07-16)
|
69 |
+
|
70 |
+
|
71 |
+
### Bug Fixes
|
72 |
+
|
73 |
+
* compatibility with lower PHP versions ([065ac8e](https://github.com/Codeinwp/themeisle-sdk/commit/065ac8e))
|
74 |
+
* not loading licenser when SDK comes from theme [[#62](https://github.com/Codeinwp/themeisle-sdk/issues/62)] ([b706ca7](https://github.com/Codeinwp/themeisle-sdk/commit/b706ca7))
|
75 |
+
* not loading licenser when SDK comes from theme [[#65](https://github.com/Codeinwp/themeisle-sdk/issues/65) ([419d8e6](https://github.com/Codeinwp/themeisle-sdk/commit/419d8e6))
|
76 |
+
* preserve loaded when adding the licenser one ([cd50434](https://github.com/Codeinwp/themeisle-sdk/commit/cd50434))
|
77 |
+
|
78 |
+
## [3.0.9](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.8...v3.0.9) (2019-06-26)
|
79 |
+
|
80 |
+
|
81 |
+
### Bug Fixes
|
82 |
+
|
83 |
+
* adds new icon for dashboard widget ([de78068](https://github.com/Codeinwp/themeisle-sdk/commit/de78068))
|
84 |
+
* anchor element on license activation message which should link to the license field, fix [#57](https://github.com/Codeinwp/themeisle-sdk/issues/57) ([2e78856](https://github.com/Codeinwp/themeisle-sdk/commit/2e78856))
|
85 |
+
* change uninstall feedback logo with new version, fix [#58](https://github.com/Codeinwp/themeisle-sdk/issues/58) ([2554a4f](https://github.com/Codeinwp/themeisle-sdk/commit/2554a4f))
|
86 |
+
* remove soon to expire notice, fix https://github.com/Codeinwp/themeisle/issues/752 ([a126225](https://github.com/Codeinwp/themeisle-sdk/commit/a126225))
|
87 |
+
|
88 |
+
## [3.0.8](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.7...v3.0.8) (2019-05-28)
|
89 |
+
|
90 |
+
|
91 |
+
### Bug Fixes
|
92 |
+
|
93 |
+
* undefined class on diff module which should check the class on global namespace ([df6bb12](https://github.com/Codeinwp/themeisle-sdk/commit/df6bb12))
|
94 |
+
|
95 |
+
## [3.0.7](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.6...v3.0.7) (2019-05-27)
|
96 |
+
|
97 |
+
|
98 |
+
### Bug Fixes
|
99 |
+
|
100 |
+
* change store url with the new domain ([6bdbe1e](https://github.com/Codeinwp/themeisle-sdk/commit/6bdbe1e))
|
101 |
+
|
102 |
+
## [3.0.6](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.5...v3.0.6) (2019-05-21)
|
103 |
+
|
104 |
+
|
105 |
+
### Bug Fixes
|
106 |
+
|
107 |
+
* build php version for deployment stage ([a785699](https://github.com/Codeinwp/themeisle-sdk/commit/a785699))
|
108 |
+
* uninstall feedback should load only on the proper pages ([259e78f](https://github.com/Codeinwp/themeisle-sdk/commit/259e78f))
|
109 |
+
|
110 |
+
## [3.0.5](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.4...v3.0.5) (2019-03-07)
|
111 |
+
|
112 |
+
|
113 |
+
### Bug Fixes
|
114 |
+
|
115 |
+
* dashboard widget issues and recommended module inconsistency fix [#50](https://github.com/Codeinwp/themeisle-sdk/issues/50), [#49](https://github.com/Codeinwp/themeisle-sdk/issues/49), [#47](https://github.com/Codeinwp/themeisle-sdk/issues/47) ([757eb02](https://github.com/Codeinwp/themeisle-sdk/commit/757eb02))
|
116 |
+
|
117 |
## [3.0.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.3...v3.0.4) (2019-01-28)
|
118 |
|
119 |
|
vendor/codeinwp/themeisle-sdk/load.php
CHANGED
@@ -14,14 +14,22 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
return;
|
15 |
}
|
16 |
// Current SDK version and path.
|
17 |
-
$themeisle_sdk_version = '3.
|
18 |
$themeisle_sdk_path = dirname( __FILE__ );
|
19 |
|
20 |
global $themeisle_sdk_max_version;
|
21 |
global $themeisle_sdk_max_path;
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
if ( version_compare( $themeisle_sdk_version, $themeisle_sdk_max_path ) == 0 &&
|
24 |
-
|
25 |
$themeisle_sdk_max_path = $themeisle_sdk_path;
|
26 |
}
|
27 |
|
@@ -30,6 +38,21 @@ if ( version_compare( $themeisle_sdk_version, $themeisle_sdk_max_version ) > 0 )
|
|
30 |
$themeisle_sdk_max_path = $themeisle_sdk_path;
|
31 |
}
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
// load the latest sdk version from the active Themeisle products.
|
34 |
if ( ! function_exists( 'themeisle_sdk_load_latest' ) ) :
|
35 |
/**
|
14 |
return;
|
15 |
}
|
16 |
// Current SDK version and path.
|
17 |
+
$themeisle_sdk_version = '3.1.6';
|
18 |
$themeisle_sdk_path = dirname( __FILE__ );
|
19 |
|
20 |
global $themeisle_sdk_max_version;
|
21 |
global $themeisle_sdk_max_path;
|
22 |
|
23 |
+
// If this is the latest SDK and it comes from a theme, we should load licenser separately.
|
24 |
+
$themeisle_sdk_relative_licenser_path = '/src/Modules/Licenser.php';
|
25 |
+
|
26 |
+
global $themeisle_sdk_abs_licenser_path;
|
27 |
+
if ( ! is_file( $themeisle_sdk_path . $themeisle_sdk_relative_licenser_path ) && is_file( $themeisle_sdk_max_path . $themeisle_sdk_relative_licenser_path ) ) {
|
28 |
+
$themeisle_sdk_abs_licenser_path = $themeisle_sdk_max_path . $themeisle_sdk_relative_licenser_path;
|
29 |
+
add_filter( 'themeisle_sdk_required_files', 'themeisle_sdk_load_licenser_if_present' );
|
30 |
+
}
|
31 |
if ( version_compare( $themeisle_sdk_version, $themeisle_sdk_max_path ) == 0 &&
|
32 |
+
apply_filters( 'themeisle_sdk_should_overwrite_path', false, $themeisle_sdk_path, $themeisle_sdk_max_path ) ) {
|
33 |
$themeisle_sdk_max_path = $themeisle_sdk_path;
|
34 |
}
|
35 |
|
38 |
$themeisle_sdk_max_path = $themeisle_sdk_path;
|
39 |
}
|
40 |
|
41 |
+
// load the latest sdk version from the active Themeisle products.
|
42 |
+
if ( ! function_exists( 'themeisle_sdk_load_licenser_if_present' ) ) :
|
43 |
+
/**
|
44 |
+
* Always load the licenser, if present.
|
45 |
+
*
|
46 |
+
* @param array $to_load Previously files to load.
|
47 |
+
*/
|
48 |
+
function themeisle_sdk_load_licenser_if_present( $to_load ) {
|
49 |
+
global $themeisle_sdk_abs_licenser_path;
|
50 |
+
$to_load[] = $themeisle_sdk_abs_licenser_path;
|
51 |
+
|
52 |
+
return $to_load;
|
53 |
+
}
|
54 |
+
endif;
|
55 |
+
|
56 |
// load the latest sdk version from the active Themeisle products.
|
57 |
if ( ! function_exists( 'themeisle_sdk_load_latest' ) ) :
|
58 |
/**
|
vendor/codeinwp/themeisle-sdk/src/Loader.php
CHANGED
@@ -55,6 +55,7 @@ final class Loader {
|
|
55 |
'logger',
|
56 |
'translate',
|
57 |
'review',
|
|
|
58 |
|
59 |
];
|
60 |
|
@@ -83,7 +84,7 @@ final class Loader {
|
|
83 |
*/
|
84 |
public static function add_product( $base_file ) {
|
85 |
|
86 |
-
if ( !
|
87 |
return self::$instance;
|
88 |
}
|
89 |
$product = new Product( $base_file );
|
@@ -113,5 +114,13 @@ final class Loader {
|
|
113 |
return self::$products;
|
114 |
}
|
115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
}
|
55 |
'logger',
|
56 |
'translate',
|
57 |
'review',
|
58 |
+
'recommendation',
|
59 |
|
60 |
];
|
61 |
|
84 |
*/
|
85 |
public static function add_product( $base_file ) {
|
86 |
|
87 |
+
if ( ! is_file( $base_file ) ) {
|
88 |
return self::$instance;
|
89 |
}
|
90 |
$product = new Product( $base_file );
|
114 |
return self::$products;
|
115 |
}
|
116 |
|
117 |
+
/**
|
118 |
+
* Get the version of the SDK.
|
119 |
+
*
|
120 |
+
* @return string The version.
|
121 |
+
*/
|
122 |
+
public static function get_version() {
|
123 |
+
return self::$version;
|
124 |
+
}
|
125 |
|
126 |
}
|
vendor/codeinwp/themeisle-sdk/src/Modules/Dashboard_widget.php
CHANGED
@@ -72,7 +72,9 @@ class Dashboard_Widget extends Abstract_Module {
|
|
72 |
* @return Dashboard_Widget Module instance.
|
73 |
*/
|
74 |
public function load( $product ) {
|
75 |
-
|
|
|
|
|
76 |
$this->product = $product;
|
77 |
$this->dashboard_name = apply_filters( 'themeisle_sdk_dashboard_widget_name', 'WordPress Guides/Tutorials' );
|
78 |
$this->feeds = apply_filters(
|
@@ -103,7 +105,7 @@ class Dashboard_Widget extends Abstract_Module {
|
|
103 |
'themeisle',
|
104 |
$this->dashboard_name,
|
105 |
[
|
106 |
-
|
107 |
'render_dashboard_widget',
|
108 |
]
|
109 |
);
|
@@ -127,10 +129,10 @@ class Dashboard_Widget extends Abstract_Module {
|
|
127 |
}
|
128 |
|
129 |
#themeisle h2.hndle {
|
130 |
-
background-image: url('data:image/
|
131 |
background-repeat: no-repeat;
|
132 |
background-position: 92% 50%;
|
133 |
-
background-size:
|
134 |
}
|
135 |
|
136 |
#themeisle .inside {
|
@@ -281,6 +283,8 @@ class Dashboard_Widget extends Abstract_Module {
|
|
281 |
array(
|
282 |
'lite',
|
283 |
'Lite',
|
|
|
|
|
284 |
),
|
285 |
'',
|
286 |
$recommend['name']
|
@@ -372,18 +376,25 @@ class Dashboard_Widget extends Abstract_Module {
|
|
372 |
*/
|
373 |
function get_product_from_api() {
|
374 |
if ( false === ( $products = get_transient( 'themeisle_sdk_products' ) ) ) {
|
375 |
-
$products
|
376 |
-
$
|
377 |
-
$
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
|
|
|
|
|
|
|
|
383 |
foreach ( $all_themes as $theme ) {
|
384 |
if ( $theme->active_installs < 4999 ) {
|
385 |
continue;
|
386 |
}
|
|
|
|
|
|
|
387 |
$products[] = array(
|
388 |
'name' => $theme->name,
|
389 |
'type' => 'theme',
|
@@ -391,11 +402,13 @@ class Dashboard_Widget extends Abstract_Module {
|
|
391 |
'installs' => $theme->active_installs,
|
392 |
);
|
393 |
}
|
394 |
-
$all_plugins = array_merge( $themeisle_plugins, $codeinwp_plugins );
|
395 |
foreach ( $all_plugins as $plugin ) {
|
396 |
if ( $plugin->active_installs < 4999 ) {
|
397 |
continue;
|
398 |
}
|
|
|
|
|
|
|
399 |
$products[] = array(
|
400 |
'name' => $plugin->name,
|
401 |
'type' => 'plugin',
|
@@ -439,7 +452,7 @@ class Dashboard_Widget extends Abstract_Module {
|
|
439 |
*/
|
440 |
function get_plugins_from_wporg( $author ) {
|
441 |
$products = wp_remote_get(
|
442 |
-
'https://api.wordpress.org/plugins/info/1.1/?action=query_plugins&request[author]=' . $author . '&request[per_page]=
|
443 |
);
|
444 |
$products = json_decode( wp_remote_retrieve_body( $products ) );
|
445 |
if ( is_object( $products ) ) {
|
72 |
* @return Dashboard_Widget Module instance.
|
73 |
*/
|
74 |
public function load( $product ) {
|
75 |
+
if ( apply_filters( 'themeisle_sdk_hide_dashboard_widget', false ) ) {
|
76 |
+
return;
|
77 |
+
}
|
78 |
$this->product = $product;
|
79 |
$this->dashboard_name = apply_filters( 'themeisle_sdk_dashboard_widget_name', 'WordPress Guides/Tutorials' );
|
80 |
$this->feeds = apply_filters(
|
105 |
'themeisle',
|
106 |
$this->dashboard_name,
|
107 |
[
|
108 |
+
$this,
|
109 |
'render_dashboard_widget',
|
110 |
]
|
111 |
);
|
129 |
}
|
130 |
|
131 |
#themeisle h2.hndle {
|
132 |
+
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABbCAMAAADncTNAAAAAtFBMVEVHcEyAgIB/f3+xsbGgoaGBgYGCgoKKioqAgIC1tbW5ubnFx8iAgIDU1taBgYGCgoKAgIC0tLXW19jW2NiAgIC3uLiBgYHLzMy4uLhycnLW19d/f3/T1NW0tLTX19mVlZWvr6+BgYHl5eWKiottbW5JSUnW2Nm5ubnh4eHT1NWVlZVjY2N4eHh9fX6pqqq+v79PT0/39/fu7u7Nzc7Z2ttYWFgBAQHDw8P////JysoZGRk0NTZqJc/sAAAAIXRSTlMA0FL7/oEnEPL6eibivm9gwJya76/enFq2CXI+2lFAyM8GATmPAAADj0lEQVR4Xu2YaW/iOhSGAwRCWDosnXa6znjJvm8svf//f12TuARyhiR2pfnUR6gSEnr0+uT4xK7yRb755pvhHePli5K7Bfpkuhoq8ozRJdMH+WWha6Z3sqYparCSLRJqspjImVbANJU03cNMMpofAwQZCGsmpQYyFvVM0Q00OQ9koMl5IPcCoro+RA1Dt2Ea9n9eZ0+YHJLkgIlkDywQx00wCTyaReiKH8LbNU9ybJOdkchV6QFxyCFLbVvdfaREqgUWg/tx2UbqIcK2Hex2TdGLwFTjIj3XP3YfCZFsb23KRZn/3263oymSFI0/a5S4PqUBjoBIJBDjeEhCN0wxQSRybIxtJ3K5SGzuE/vAwIQc8ZmMMJFAIM4oikZItfEFtorGgoE43FObwqHU68OtPCnOz8KZ2Jbl5LgkSW0Tc7YyIz/EFWmS4jMbiZU5mJOmKRaJpKGGyLZtDJh3iyaNUu/3+xyKnrtFL71EG+FTiMpENhQtxUQ8kSOXCIr2tnCNhg/gTX0SHYFp0t7TCwQZ7U841yoHrW6rtGroUwTWVnLMssxx+H4bgZcSOFf5MYx0Ae8FghomMDyC2EBNImBywPkNTDNqGLQpIg2TjUNU8tBy9DQMo0DAZF16rAi7vJAtFTIYFAHUc6hIRW6OuOhJgaCSwmDEAYK4oa7ro+qIEyJU/US7KTJKPNSFT9tFgVFBu0SF1y7yjX4masRA9Da7EFGj28R/BkQz6xGIOurkx38T/bKs9Uk8aIiMwm/Jw0VP1yLrJwt13xAxvABBgsK4KWLov35DkRF7ZaqgzuZ7MQ8MOntmVYyAqKTwaICKqvSUFnVccMN5sziEP/5+xGDTahbH5Q3ZB76zr8fI+nJtvUUU3t3ml5GKviK/npCg3CGodnuJ4JVkfRFJYGVDBZrqKnn9RLf+CzDTS5PaN5J38+auzX4ykU4Qoj0rdKfcYs5ijfo9OL/uRUgZyQr7NCWtWwiUSLc4arfJa7lpszTA1OJZAQ8w8dXFrR5YHzCWSnS3pZ18tOi4Ps4vl/c7i/6qomjRecN+UubrPyPGn/VEMU3T0UFHkaPzpgjxmJsnjmrtionlMDZiog0TsY/DPtn8SXtlBvbtxKtwopy7lqW3smQO+yoGE1Uu55GJ3pmI8ygoejZNnqj0vnIRCyTKfLstRdtStGQi09myUsvwvlkuzSUXbV+Xz5ryBebV33fln/A/moud69FZiEYAAAAASUVORK5CYII=');
|
133 |
background-repeat: no-repeat;
|
134 |
background-position: 92% 50%;
|
135 |
+
background-size: 25px;
|
136 |
}
|
137 |
|
138 |
#themeisle .inside {
|
283 |
array(
|
284 |
'lite',
|
285 |
'Lite',
|
286 |
+
'(Lite)',
|
287 |
+
'(lite)',
|
288 |
),
|
289 |
'',
|
290 |
$recommend['name']
|
376 |
*/
|
377 |
function get_product_from_api() {
|
378 |
if ( false === ( $products = get_transient( 'themeisle_sdk_products' ) ) ) {
|
379 |
+
$products = array();
|
380 |
+
$all_themes = $this->get_themes_from_wporg( 'themeisle' );
|
381 |
+
$all_plugins = $this->get_plugins_from_wporg( 'themeisle' );
|
382 |
+
static $allowed_products = [
|
383 |
+
'hestia' => true,
|
384 |
+
'neve' => true,
|
385 |
+
'visualizer' => true,
|
386 |
+
'feedzy-rss-feeds' => true,
|
387 |
+
'wp-product-review' => true,
|
388 |
+
'otter-blocks' => true,
|
389 |
+
'themeisle-companion' => true,
|
390 |
+
];
|
391 |
foreach ( $all_themes as $theme ) {
|
392 |
if ( $theme->active_installs < 4999 ) {
|
393 |
continue;
|
394 |
}
|
395 |
+
if ( ! isset( $allowed_products[ $theme->slug ] ) ) {
|
396 |
+
continue;
|
397 |
+
}
|
398 |
$products[] = array(
|
399 |
'name' => $theme->name,
|
400 |
'type' => 'theme',
|
402 |
'installs' => $theme->active_installs,
|
403 |
);
|
404 |
}
|
|
|
405 |
foreach ( $all_plugins as $plugin ) {
|
406 |
if ( $plugin->active_installs < 4999 ) {
|
407 |
continue;
|
408 |
}
|
409 |
+
if ( ! isset( $allowed_products[ $plugin->slug ] ) ) {
|
410 |
+
continue;
|
411 |
+
}
|
412 |
$products[] = array(
|
413 |
'name' => $plugin->name,
|
414 |
'type' => 'plugin',
|
452 |
*/
|
453 |
function get_plugins_from_wporg( $author ) {
|
454 |
$products = wp_remote_get(
|
455 |
+
'https://api.wordpress.org/plugins/info/1.1/?action=query_plugins&request[author]=' . $author . '&request[per_page]=40&request[fields][active_installs]=true'
|
456 |
);
|
457 |
$products = json_decode( wp_remote_retrieve_body( $products ) );
|
458 |
if ( is_object( $products ) ) {
|
vendor/codeinwp/themeisle-sdk/src/Modules/Endpoint.php
CHANGED
@@ -273,7 +273,7 @@ class Endpoint extends Abstract_Module {
|
|
273 |
|
274 |
// fetch the calculated hashes.
|
275 |
if ( ! $wp_filesystem->is_readable( $path . '/' . self::HASH_FILE ) ) {
|
276 |
-
return new WP_Error( 'themeisle_sdk_hash_not_found', sprintf( '%s not found', self::HASH_FILE ) );
|
277 |
}
|
278 |
|
279 |
$hashes = json_decode( $wp_filesystem->get_contents( $path . '/' . self::HASH_FILE ), true );
|
273 |
|
274 |
// fetch the calculated hashes.
|
275 |
if ( ! $wp_filesystem->is_readable( $path . '/' . self::HASH_FILE ) ) {
|
276 |
+
return new \WP_Error( 'themeisle_sdk_hash_not_found', sprintf( '%s not found', self::HASH_FILE ) );
|
277 |
}
|
278 |
|
279 |
$hashes = json_decode( $wp_filesystem->get_contents( $path . '/' . self::HASH_FILE ), true );
|
vendor/codeinwp/themeisle-sdk/src/Modules/Licenser.php
CHANGED
@@ -89,6 +89,9 @@ class Licenser extends Abstract_Module {
|
|
89 |
if ( ! is_admin() ) {
|
90 |
return false;
|
91 |
}
|
|
|
|
|
|
|
92 |
add_settings_field(
|
93 |
$this->product->get_key() . '_license',
|
94 |
$this->product->get_name() . ' license',
|
@@ -109,8 +112,68 @@ class Licenser extends Abstract_Module {
|
|
109 |
$valid_string = apply_filters( $this->product->get_key() . '_lc_valid_string', 'Valid' );
|
110 |
$invalid_string = apply_filters( $this->product->get_key() . '_lc_invalid_string', 'Invalid' );
|
111 |
$license_message = apply_filters( $this->product->get_key() . '_lc_license_message', 'Enter your license from %s purchase history in order to get %s updates' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
|
113 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
|
115 |
}
|
116 |
|
@@ -166,10 +229,13 @@ class Licenser extends Abstract_Module {
|
|
166 |
if ( ! is_admin() ) {
|
167 |
return false;
|
168 |
}
|
|
|
|
|
|
|
|
|
169 |
$status = $this->get_license_status();
|
170 |
$no_activations_string = apply_filters( $this->product->get_key() . '_lc_no_activations_string', 'No activations left for %s !!!. You need to upgrade your plan in order to use %s on more websites. Please ask the %s Staff for more details.' );
|
171 |
$no_valid_string = apply_filters( $this->product->get_key() . '_lc_no_valid_string', 'In order to benefit from updates and support for %s, please add your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a href="%s">here</a>. ' );
|
172 |
-
$expiration_string = apply_filters( $this->product->get_key() . '_lc_expiration_string', 'Your license is about to expire for %s. You can go to %s and renew it ' );
|
173 |
|
174 |
// No activations left for this license.
|
175 |
if ( 'valid' != $status && $this->check_activation() ) {
|
@@ -195,7 +261,7 @@ class Licenser extends Abstract_Module {
|
|
195 |
?>
|
196 |
<div class="error">
|
197 |
<p>
|
198 |
-
<strong><?php echo sprintf( $no_valid_string, $this->product->get_name() . ' ' . $this->product->get_type(), $this->get_api_url(), admin_url( 'options-general.php' ) . '#' . $this->product->get_key() ); ?> </strong>
|
199 |
</p>
|
200 |
</div>
|
201 |
<?php
|
@@ -203,26 +269,6 @@ class Licenser extends Abstract_Module {
|
|
203 |
return false;
|
204 |
}
|
205 |
|
206 |
-
// Expired and soon to expire license.
|
207 |
-
if ( 'valid' == $status && $this->check_expiration() ) {
|
208 |
-
?>
|
209 |
-
<div class="update-nag">
|
210 |
-
<p>
|
211 |
-
<strong>
|
212 |
-
<?php
|
213 |
-
echo sprintf(
|
214 |
-
$expiration_string,
|
215 |
-
$this->product->get_name() . ' ' . $this->product->get_type(),
|
216 |
-
'<a href="' . $this->renew_url() . '" target="_blank">' . $this->get_distributor_name() . '</a>'
|
217 |
-
);
|
218 |
-
?>
|
219 |
-
</strong>
|
220 |
-
</p>
|
221 |
-
</div>
|
222 |
-
<?php
|
223 |
-
return false;
|
224 |
-
}
|
225 |
-
|
226 |
return true;
|
227 |
}
|
228 |
|
@@ -376,6 +422,26 @@ class Licenser extends Abstract_Module {
|
|
376 |
update_option( $this->product->get_key() . '_failed_checks', $this->failed_checks );
|
377 |
}
|
378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
/**
|
380 |
* Activate the license remotely.
|
381 |
*/
|
@@ -402,19 +468,22 @@ class Licenser extends Abstract_Module {
|
|
402 |
$response = wp_remote_get( add_query_arg( $api_params, $this->get_api_url() ) );
|
403 |
// make sure the response came back okay.
|
404 |
if ( is_wp_error( $response ) ) {
|
405 |
-
$
|
406 |
-
$license_data->license = ( 'valid' != $status ) ? 'valid' : 'invalid';
|
407 |
|
408 |
-
|
409 |
-
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
|
410 |
-
if ( ! is_object( $license_data ) ) {
|
411 |
-
$license_data = new \stdClass();
|
412 |
-
$license_data->license = ( 'valid' != $status ) ? 'valid' : 'invalid';
|
413 |
-
}
|
414 |
-
if ( ! isset( $license_data->license ) ) {
|
415 |
-
$license_data->license = 'invalid';
|
416 |
-
}
|
417 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
418 |
if ( ! isset( $license_data->key ) ) {
|
419 |
$license_data->key = $license;
|
420 |
}
|
@@ -422,10 +491,19 @@ class Licenser extends Abstract_Module {
|
|
422 |
$this->reset_failed_checks();
|
423 |
}
|
424 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
425 |
if ( isset( $license_data->plan ) ) {
|
426 |
update_option( $this->product->get_key() . '_license_plan', $license_data->plan );
|
427 |
}
|
428 |
-
|
429 |
update_option( $this->product->get_key() . '_license_data', $license_data );
|
430 |
set_transient( $this->product->get_key() . '_license_data', $license_data, 12 * HOUR_IN_SECONDS );
|
431 |
|
@@ -445,7 +523,7 @@ class Licenser extends Abstract_Module {
|
|
445 |
function update_nag() {
|
446 |
$theme = wp_get_theme( $this->product->get_slug() );
|
447 |
$api_response = get_transient( $this->product_key );
|
448 |
-
if ( false === $api_response ) {
|
449 |
return;
|
450 |
}
|
451 |
$update_url = wp_nonce_url( 'update.php?action=upgrade-theme&theme=' . urlencode( $this->product->get_slug() ), 'upgrade-theme_' . $this->product->get_slug() );
|
@@ -457,7 +535,7 @@ class Licenser extends Abstract_Module {
|
|
457 |
'<strong>%1$s %2$s</strong> is available. <a href="%3$s" class="thickbox" title="%4s">Check out what\'s new</a> or <a href="%5$s"%6$s>update now</a>.',
|
458 |
$theme->get( 'Name' ),
|
459 |
$api_response->new_version,
|
460 |
-
'
|
461 |
$theme->get( 'Name' ),
|
462 |
$update_url,
|
463 |
$update_onclick
|
@@ -507,7 +585,7 @@ class Licenser extends Abstract_Module {
|
|
507 |
|
508 |
return false;
|
509 |
}
|
510 |
-
$update_data->sections = maybe_unserialize( $update_data->sections );
|
511 |
|
512 |
set_transient( $this->product_key, $update_data, 12 * HOUR_IN_SECONDS );
|
513 |
}
|
@@ -530,18 +608,17 @@ class Licenser extends Abstract_Module {
|
|
530 |
$api_params = array(
|
531 |
'edd_action' => 'get_version',
|
532 |
'version' => $this->product->get_version(),
|
533 |
-
'license' => $this->license_key,
|
534 |
-
'name' => $this->product->get_name(),
|
535 |
'slug' => $this->product->get_slug(),
|
536 |
-
'author' => $this->get_distributor_name(),
|
537 |
'url' => rawurlencode( home_url() ),
|
538 |
);
|
539 |
$response = wp_remote_get(
|
540 |
-
$this->get_api_url(),
|
541 |
array(
|
542 |
'timeout' => 15,
|
543 |
'sslverify' => false,
|
544 |
-
'body' => $api_params,
|
545 |
)
|
546 |
);
|
547 |
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
|
89 |
if ( ! is_admin() ) {
|
90 |
return false;
|
91 |
}
|
92 |
+
if ( apply_filters( $this->product->get_key() . '_hide_license_field', false ) ) {
|
93 |
+
return;
|
94 |
+
}
|
95 |
add_settings_field(
|
96 |
$this->product->get_key() . '_license',
|
97 |
$this->product->get_name() . ' license',
|
112 |
$valid_string = apply_filters( $this->product->get_key() . '_lc_valid_string', 'Valid' );
|
113 |
$invalid_string = apply_filters( $this->product->get_key() . '_lc_invalid_string', 'Invalid' );
|
114 |
$license_message = apply_filters( $this->product->get_key() . '_lc_license_message', 'Enter your license from %s purchase history in order to get %s updates' );
|
115 |
+
$error_message = $this->get_error();
|
116 |
+
?>
|
117 |
+
<style type="text/css">
|
118 |
+
input.themeisle-sdk-text-input-valid {
|
119 |
+
border: 1px solid #7ad03a;
|
120 |
+
}
|
121 |
+
|
122 |
+
input.themeisle-sdk-license-input {
|
123 |
+
width: 300px;
|
124 |
+
padding: 5px;
|
125 |
+
}
|
126 |
+
|
127 |
+
.themeisle-sdk-license-deactivate-cta {
|
128 |
+
color: #fff;
|
129 |
+
background: #7ad03a;
|
130 |
+
display: inline-block;
|
131 |
+
text-decoration: none;
|
132 |
+
font-size: 13px;
|
133 |
+
line-height: 30px;
|
134 |
+
height: 26px;
|
135 |
+
margin-left: 5px;
|
136 |
+
padding: 0 10px 3px;
|
137 |
+
-webkit-border-radius: 3px;
|
138 |
+
border-radius: 3px;
|
139 |
+
}
|
140 |
+
|
141 |
+
.themeisle-sdk-license-activate-cta {
|
142 |
+
color: #fff;
|
143 |
+
background: #dd3d36;
|
144 |
+
display: inline-block;
|
145 |
+
text-decoration: none;
|
146 |
+
font-size: 13px;
|
147 |
+
line-height: 30px;
|
148 |
+
height: 26px;
|
149 |
+
margin-left: 5px;
|
150 |
+
padding: 0 10px 3px;
|
151 |
+
-webkit-border-radius: 3px;
|
152 |
+
border-radius: 3px;
|
153 |
+
}
|
154 |
+
|
155 |
+
button.button.themeisle-sdk-licenser-button-cta {
|
156 |
+
line-height: 26px;
|
157 |
+
height: 29px;
|
158 |
+
vertical-align: top;
|
159 |
+
}
|
160 |
|
161 |
+
</style>
|
162 |
+
<?php
|
163 |
+
echo sprintf(
|
164 |
+
'<p>%s<input class="themeisle-sdk-license-input %s" type="text" id="%s_license" name="%s_license" value="%s" /><a class="%s">%s</a> <button name="%s_btn_trigger" class="button button-primary themeisle-sdk-licenser-button-cta" value="yes" type="submit" >%s</button></p><p class="description">%s</p>%s',
|
165 |
+
( ( 'valid' === $status ) ? sprintf( '<input type="hidden" value="%s" name="%s_license" />', $value, $this->product->get_key() ) : '' ),
|
166 |
+
( ( 'valid' === $status ) ? 'themeisle-sdk-text-input-valid' : '' ),
|
167 |
+
$this->product->get_key(),
|
168 |
+
( ( 'valid' === $status ) ? $this->product->get_key() . '_mask' : $this->product->get_key() ),
|
169 |
+
( ( 'valid' === $status ) ? ( str_repeat( '*', 30 ) . substr( $value, - 5 ) ) : $value ),
|
170 |
+
( 'valid' === $status ? 'themeisle-sdk-license-deactivate-cta' : 'themeisle-sdk-license-activate-cta' ),
|
171 |
+
( 'valid' === $status ? $valid_string : $invalid_string ),
|
172 |
+
$this->product->get_key(),
|
173 |
+
( 'valid' === $status ? $deactivate_string : $activate_string ),
|
174 |
+
sprintf( $license_message, '<a href="' . $this->get_api_url() . '">' . $this->get_distributor_name() . '</a> ', $this->product->get_type() ),
|
175 |
+
empty( $error_message ) ? '' : sprintf( '<p style="color:#dd3d36">%s</p>', $error_message )
|
176 |
+
);
|
177 |
|
178 |
}
|
179 |
|
229 |
if ( ! is_admin() ) {
|
230 |
return false;
|
231 |
}
|
232 |
+
|
233 |
+
if ( apply_filters( $this->product->get_key() . '_hide_license_notices', false ) ) {
|
234 |
+
return;
|
235 |
+
}
|
236 |
$status = $this->get_license_status();
|
237 |
$no_activations_string = apply_filters( $this->product->get_key() . '_lc_no_activations_string', 'No activations left for %s !!!. You need to upgrade your plan in order to use %s on more websites. Please ask the %s Staff for more details.' );
|
238 |
$no_valid_string = apply_filters( $this->product->get_key() . '_lc_no_valid_string', 'In order to benefit from updates and support for %s, please add your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a href="%s">here</a>. ' );
|
|
|
239 |
|
240 |
// No activations left for this license.
|
241 |
if ( 'valid' != $status && $this->check_activation() ) {
|
261 |
?>
|
262 |
<div class="error">
|
263 |
<p>
|
264 |
+
<strong><?php echo sprintf( $no_valid_string, $this->product->get_name() . ' ' . $this->product->get_type(), $this->get_api_url(), admin_url( 'options-general.php' ) . '#' . $this->product->get_key() . '_license' ); ?> </strong>
|
265 |
</p>
|
266 |
</div>
|
267 |
<?php
|
269 |
return false;
|
270 |
}
|
271 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
return true;
|
273 |
}
|
274 |
|
422 |
update_option( $this->product->get_key() . '_failed_checks', $this->failed_checks );
|
423 |
}
|
424 |
|
425 |
+
/**
|
426 |
+
* Set license validation error message.
|
427 |
+
*
|
428 |
+
* @param string $message Error message.
|
429 |
+
*/
|
430 |
+
public function set_error( $message = '' ) {
|
431 |
+
set_transient( $this->product->get_key() . 'act_err', $message, MINUTE_IN_SECONDS );
|
432 |
+
|
433 |
+
return;
|
434 |
+
}
|
435 |
+
|
436 |
+
/**
|
437 |
+
* Return the last error message.
|
438 |
+
*
|
439 |
+
* @return mixed Error message.
|
440 |
+
*/
|
441 |
+
public function get_error() {
|
442 |
+
return get_transient( $this->product->get_key() . 'act_err' );
|
443 |
+
}
|
444 |
+
|
445 |
/**
|
446 |
* Activate the license remotely.
|
447 |
*/
|
468 |
$response = wp_remote_get( add_query_arg( $api_params, $this->get_api_url() ) );
|
469 |
// make sure the response came back okay.
|
470 |
if ( is_wp_error( $response ) ) {
|
471 |
+
$this->set_error( sprintf( 'ERROR: Failed to connect to the license service. Please try again later. Reason: %s', $response->get_error_message() ) );
|
|
|
472 |
|
473 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
474 |
}
|
475 |
+
|
476 |
+
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
|
477 |
+
|
478 |
+
if ( ! is_object( $license_data ) ) {
|
479 |
+
$this->set_error( 'ERROR: Failed to validate license. Please try again in one minute.' );
|
480 |
+
|
481 |
+
return;
|
482 |
+
}
|
483 |
+
if ( ! isset( $license_data->license ) ) {
|
484 |
+
$license_data->license = 'invalid';
|
485 |
+
}
|
486 |
+
|
487 |
if ( ! isset( $license_data->key ) ) {
|
488 |
$license_data->key = $license;
|
489 |
}
|
491 |
$this->reset_failed_checks();
|
492 |
}
|
493 |
|
494 |
+
$this->set_error( '' );
|
495 |
+
|
496 |
+
if ( 'deactivate_license' === $api_params['edd_action'] ) {
|
497 |
+
|
498 |
+
delete_option( $this->product->get_key() . '_license_data' );
|
499 |
+
delete_option( $this->product->get_key() . '_license_plan' );
|
500 |
+
delete_transient( $this->product->get_key() . '_license_data' );
|
501 |
+
|
502 |
+
return;
|
503 |
+
}
|
504 |
if ( isset( $license_data->plan ) ) {
|
505 |
update_option( $this->product->get_key() . '_license_plan', $license_data->plan );
|
506 |
}
|
|
|
507 |
update_option( $this->product->get_key() . '_license_data', $license_data );
|
508 |
set_transient( $this->product->get_key() . '_license_data', $license_data, 12 * HOUR_IN_SECONDS );
|
509 |
|
523 |
function update_nag() {
|
524 |
$theme = wp_get_theme( $this->product->get_slug() );
|
525 |
$api_response = get_transient( $this->product_key );
|
526 |
+
if ( false === $api_response || ! isset( $api_response->new_version ) ) {
|
527 |
return;
|
528 |
}
|
529 |
$update_url = wp_nonce_url( 'update.php?action=upgrade-theme&theme=' . urlencode( $this->product->get_slug() ), 'upgrade-theme_' . $this->product->get_slug() );
|
535 |
'<strong>%1$s %2$s</strong> is available. <a href="%3$s" class="thickbox" title="%4s">Check out what\'s new</a> or <a href="%5$s"%6$s>update now</a>.',
|
536 |
$theme->get( 'Name' ),
|
537 |
$api_response->new_version,
|
538 |
+
sprintf( '%s&TB_iframe=true&width=1024&height=800', $this->product->get_changelog() ),
|
539 |
$theme->get( 'Name' ),
|
540 |
$update_url,
|
541 |
$update_onclick
|
585 |
|
586 |
return false;
|
587 |
}
|
588 |
+
$update_data->sections = isset( $update_data->sections ) ? maybe_unserialize( $update_data->sections ) : null;
|
589 |
|
590 |
set_transient( $this->product_key, $update_data, 12 * HOUR_IN_SECONDS );
|
591 |
}
|
608 |
$api_params = array(
|
609 |
'edd_action' => 'get_version',
|
610 |
'version' => $this->product->get_version(),
|
611 |
+
'license' => empty( $this->license_key ) ? 'free' : $this->license_key,
|
612 |
+
'name' => rawurlencode( $this->product->get_name() ),
|
613 |
'slug' => $this->product->get_slug(),
|
614 |
+
'author' => rawurlencode( $this->get_distributor_name() ),
|
615 |
'url' => rawurlencode( home_url() ),
|
616 |
);
|
617 |
$response = wp_remote_get(
|
618 |
+
add_query_arg( $api_params, $this->get_api_url() ),
|
619 |
array(
|
620 |
'timeout' => 15,
|
621 |
'sslverify' => false,
|
|
|
622 |
)
|
623 |
);
|
624 |
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
|
vendor/codeinwp/themeisle-sdk/src/Modules/Logger.php
CHANGED
@@ -152,7 +152,7 @@ class Logger extends Abstract_Module {
|
|
152 |
$environment['theme']['name'] = $theme->get( 'Name' );
|
153 |
$environment['theme']['author'] = $theme->get( 'Author' );
|
154 |
$environment['plugins'] = get_option( 'active_plugins' );
|
155 |
-
|
156 |
wp_remote_post(
|
157 |
self::TRACKING_ENDPOINT,
|
158 |
array(
|
@@ -166,6 +166,7 @@ class Logger extends Abstract_Module {
|
|
166 |
'site' => get_site_url(),
|
167 |
'slug' => $this->product->get_slug(),
|
168 |
'version' => $this->product->get_version(),
|
|
|
169 |
'data' => apply_filters( $this->product->get_key() . '_logger_data', array() ),
|
170 |
'environment' => $environment,
|
171 |
'license' => apply_filters( $this->product->get_key() . '_license_status', '' ),
|
152 |
$environment['theme']['name'] = $theme->get( 'Name' );
|
153 |
$environment['theme']['author'] = $theme->get( 'Author' );
|
154 |
$environment['plugins'] = get_option( 'active_plugins' );
|
155 |
+
global $wp_version;
|
156 |
wp_remote_post(
|
157 |
self::TRACKING_ENDPOINT,
|
158 |
array(
|
166 |
'site' => get_site_url(),
|
167 |
'slug' => $this->product->get_slug(),
|
168 |
'version' => $this->product->get_version(),
|
169 |
+
'wp_version' => $wp_version,
|
170 |
'data' => apply_filters( $this->product->get_key() . '_logger_data', array() ),
|
171 |
'environment' => $environment,
|
172 |
'license' => apply_filters( $this->product->get_key() . '_license_status', '' ),
|
vendor/codeinwp/themeisle-sdk/src/Modules/Notification.php
CHANGED
@@ -430,6 +430,9 @@ class Notification extends Abstract_Module {
|
|
430 |
* @return Notification Module instance.
|
431 |
*/
|
432 |
public function load( $product ) {
|
|
|
|
|
|
|
433 |
$this->product = $product;
|
434 |
|
435 |
$notifications = apply_filters( 'themeisle_sdk_registered_notifications', [] );
|
430 |
* @return Notification Module instance.
|
431 |
*/
|
432 |
public function load( $product ) {
|
433 |
+
if ( apply_filters( 'themeisle_sdk_hide_notifications', false ) ) {
|
434 |
+
return;
|
435 |
+
}
|
436 |
$this->product = $product;
|
437 |
|
438 |
$notifications = apply_filters( 'themeisle_sdk_registered_notifications', [] );
|
vendor/codeinwp/themeisle-sdk/src/Modules/Recommendation.php
ADDED
@@ -0,0 +1,374 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The class that exposes hooks for recommend.
|
4 |
+
*
|
5 |
+
* @package ThemeIsleSDK
|
6 |
+
* @subpackage Rollback
|
7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
9 |
+
* @since 1.0.0
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace ThemeisleSDK\Modules;
|
13 |
+
|
14 |
+
// Exit if accessed directly.
|
15 |
+
use ThemeisleSDK\Common\Abstract_Module;
|
16 |
+
use ThemeisleSDK\Product;
|
17 |
+
|
18 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
19 |
+
exit;
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Expose endpoints for ThemeIsle SDK.
|
24 |
+
*/
|
25 |
+
class Recommendation extends Abstract_Module {
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Load module logic.
|
30 |
+
*
|
31 |
+
* @param Product $product Product to load.
|
32 |
+
*/
|
33 |
+
public function load( $product ) {
|
34 |
+
$this->product = $product;
|
35 |
+
$this->setup_hooks();
|
36 |
+
|
37 |
+
return $this;
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Setup endpoints.
|
42 |
+
*/
|
43 |
+
private function setup_hooks() {
|
44 |
+
add_action( $this->product->get_key() . '_recommend_products', array( $this, 'render_products_box' ), 10, 4 );
|
45 |
+
add_action( 'admin_head', array( $this, 'enqueue' ) );
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Check if we should load the module for this product.
|
50 |
+
*
|
51 |
+
* @param Product $product Product data.
|
52 |
+
*
|
53 |
+
* @return bool Should we load the module?
|
54 |
+
*/
|
55 |
+
public function can_load( $product ) {
|
56 |
+
return true;
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Render products box content.
|
61 |
+
*
|
62 |
+
* @param array $plugins_list - list of useful plugins (in slug => nicename format).
|
63 |
+
* @param array $themes_list - list of useful themes (in slug => nicename format).
|
64 |
+
* @param array $strings - list of translated strings.
|
65 |
+
* @param array $preferences - list of preferences.
|
66 |
+
*/
|
67 |
+
function render_products_box( $plugins_list, $themes_list, $strings, $preferences = array() ) {
|
68 |
+
|
69 |
+
if ( empty( $plugins_list ) && empty( $themes_list ) ) {
|
70 |
+
return;
|
71 |
+
}
|
72 |
+
|
73 |
+
if ( ! empty( $plugins_list ) && ! current_user_can( 'install_plugins' ) ) {
|
74 |
+
return;
|
75 |
+
}
|
76 |
+
|
77 |
+
if ( ! empty( $themes_list ) && ! current_user_can( 'install_themes' ) ) {
|
78 |
+
return;
|
79 |
+
}
|
80 |
+
|
81 |
+
add_thickbox();
|
82 |
+
|
83 |
+
if ( ! empty( $themes_list ) ) {
|
84 |
+
$list = $this->get_themes( $themes_list, $preferences );
|
85 |
+
|
86 |
+
if ( has_action( $this->product->get_key() . '_recommend_products_theme_template' ) ) {
|
87 |
+
do_action( $this->product->get_key() . '_recommend_products_theme_template', $list, $strings, $preferences );
|
88 |
+
} else {
|
89 |
+
echo '<div class="recommend-product">';
|
90 |
+
|
91 |
+
foreach ( $list as $theme ) {
|
92 |
+
echo '<div class="plugin_box">';
|
93 |
+
echo ' <img class="theme-banner" src="' . $theme->screenshot_url . '">';
|
94 |
+
echo ' <div class="title-action-wrapper">';
|
95 |
+
echo ' <span class="plugin-name">' . esc_html( $theme->custom_name ) . '</span>';
|
96 |
+
if ( ! isset( $preferences['description'] ) || ( isset( $preferences['description'] ) && $preferences['description'] ) ) {
|
97 |
+
echo '<span class="plugin-desc">' . esc_html( substr( $theme->description, 0, strpos( $theme->description, '.' ) ) ) . '.</span>';
|
98 |
+
}
|
99 |
+
echo ' </div>';
|
100 |
+
echo '<div class="plugin-box-footer">';
|
101 |
+
echo ' <div class="button-wrap">';
|
102 |
+
echo ' <a class="button button-primary " href="' . esc_url( $theme->custom_url ) . '"><span class="dashicons dashicons-external"></span>' . esc_html( $strings['install'] ) . '</a>';
|
103 |
+
echo ' </div>';
|
104 |
+
echo ' </div>';
|
105 |
+
echo '</div>';
|
106 |
+
}
|
107 |
+
|
108 |
+
echo '</div>';
|
109 |
+
}
|
110 |
+
}
|
111 |
+
if ( ! empty( $plugins_list ) ) {
|
112 |
+
$list = $this->get_plugins( $plugins_list, $preferences );
|
113 |
+
|
114 |
+
if ( has_action( $this->product->get_key() . '_recommend_products_plugin_template' ) ) {
|
115 |
+
do_action( $this->product->get_key() . '_recommend_products_plugin_template', $list, $strings, $preferences );
|
116 |
+
} else {
|
117 |
+
echo '<div class="recommend-product">';
|
118 |
+
|
119 |
+
foreach ( $list as $current_plugin ) {
|
120 |
+
echo '<div class="plugin_box">';
|
121 |
+
echo ' <img class="plugin-banner" src="' . $current_plugin->custom_image . '">';
|
122 |
+
echo ' <div class="title-action-wrapper">';
|
123 |
+
echo ' <span class="plugin-name">' . esc_html( $current_plugin->custom_name ) . '</span>';
|
124 |
+
if ( ! isset( $preferences['description'] ) || ( isset( $preferences['description'] ) && $preferences['description'] ) ) {
|
125 |
+
echo '<span class="plugin-desc">' . esc_html( substr( $current_plugin->short_description, 0, strpos( $current_plugin->short_description, '.' ) ) ) . '. </span>';
|
126 |
+
}
|
127 |
+
echo ' </div>';
|
128 |
+
echo ' <div class="plugin-box-footer">';
|
129 |
+
echo ' <a class="button button-primary thickbox open-plugin-details-modal" href="' . esc_url( $current_plugin->custom_url ) . '"><span class="dashicons dashicons-external"></span>' . esc_html( $strings['install'] ) . '</a>';
|
130 |
+
echo ' </div>';
|
131 |
+
echo '</div>';
|
132 |
+
}
|
133 |
+
|
134 |
+
echo '</div>';
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Collect all the information for the themes list.
|
142 |
+
*
|
143 |
+
* @param array $themes_list - list of useful themes (in slug => nicename format).
|
144 |
+
* @param array $preferences - list of preferences.
|
145 |
+
*
|
146 |
+
* @return array
|
147 |
+
*/
|
148 |
+
private function get_themes( $themes_list, $preferences ) {
|
149 |
+
$list = array();
|
150 |
+
foreach ( $themes_list as $slug => $nicename ) {
|
151 |
+
$theme = $this->call_theme_api( $slug );
|
152 |
+
if ( ! $theme ) {
|
153 |
+
continue;
|
154 |
+
}
|
155 |
+
|
156 |
+
$url = add_query_arg(
|
157 |
+
array(
|
158 |
+
'theme' => $theme->slug,
|
159 |
+
),
|
160 |
+
network_admin_url( 'theme-install.php' )
|
161 |
+
);
|
162 |
+
|
163 |
+
$name = empty( $nicename ) ? $theme->name : $nicename;
|
164 |
+
|
165 |
+
$theme->custom_url = $url;
|
166 |
+
$theme->custom_name = $name;
|
167 |
+
|
168 |
+
$list[] = $theme;
|
169 |
+
}
|
170 |
+
|
171 |
+
return $list;
|
172 |
+
}
|
173 |
+
|
174 |
+
/**
|
175 |
+
* Call theme api
|
176 |
+
*
|
177 |
+
* @param string $slug theme slug.
|
178 |
+
*
|
179 |
+
* @return array|mixed|object
|
180 |
+
*/
|
181 |
+
private function call_theme_api( $slug ) {
|
182 |
+
$theme = get_transient( 'ti_theme_info_' . $slug );
|
183 |
+
|
184 |
+
if ( false !== $theme ) {
|
185 |
+
return $theme;
|
186 |
+
}
|
187 |
+
|
188 |
+
$products = wp_remote_get(
|
189 |
+
'https://api.wordpress.org/themes/info/1.1/?action=query_themes&request[theme]=' . $slug . '&request[per_page]=1'
|
190 |
+
);
|
191 |
+
$products = json_decode( wp_remote_retrieve_body( $products ) );
|
192 |
+
if ( is_object( $products ) ) {
|
193 |
+
$theme = $products->themes[0];
|
194 |
+
set_transient( 'ti_theme_info_' . $slug, $theme, 6 * HOUR_IN_SECONDS );
|
195 |
+
}
|
196 |
+
|
197 |
+
return $theme;
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Collect all the information for the plugins list.
|
202 |
+
*
|
203 |
+
* @param array $plugins_list - list of useful plugins (in slug => nicename format).
|
204 |
+
* @param array $preferences - list of preferences.
|
205 |
+
*
|
206 |
+
* @return array
|
207 |
+
*/
|
208 |
+
private function get_plugins( $plugins_list, $preferences ) {
|
209 |
+
$list = array();
|
210 |
+
foreach ( $plugins_list as $plugin => $nicename ) {
|
211 |
+
$current_plugin = $this->call_plugin_api( $plugin );
|
212 |
+
|
213 |
+
$name = empty( $nicename ) ? $current_plugin->name : $nicename;
|
214 |
+
|
215 |
+
$image = $current_plugin->banners['low'];
|
216 |
+
if ( isset( $preferences['image'] ) && 'icon' === $preferences['image'] ) {
|
217 |
+
$image = $current_plugin->icons['1x'];
|
218 |
+
}
|
219 |
+
|
220 |
+
$url = add_query_arg(
|
221 |
+
array(
|
222 |
+
'tab' => 'plugin-information',
|
223 |
+
'plugin' => $current_plugin->slug,
|
224 |
+
'TB_iframe' => true,
|
225 |
+
'width' => 800,
|
226 |
+
'height' => 800,
|
227 |
+
),
|
228 |
+
network_admin_url( 'plugin-install.php' )
|
229 |
+
);
|
230 |
+
|
231 |
+
$current_plugin->custom_url = $url;
|
232 |
+
$current_plugin->custom_name = $name;
|
233 |
+
$current_plugin->custom_image = $image;
|
234 |
+
|
235 |
+
$list[] = $current_plugin;
|
236 |
+
}
|
237 |
+
|
238 |
+
return $list;
|
239 |
+
}
|
240 |
+
|
241 |
+
/**
|
242 |
+
* Call plugin api
|
243 |
+
*
|
244 |
+
* @param string $slug plugin slug.
|
245 |
+
*
|
246 |
+
* @return array|mixed|object
|
247 |
+
*/
|
248 |
+
private function call_plugin_api( $slug ) {
|
249 |
+
include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
|
250 |
+
|
251 |
+
$call_api = get_transient( 'ti_plugin_info_' . $slug );
|
252 |
+
|
253 |
+
if ( false === $call_api ) {
|
254 |
+
$call_api = plugins_api(
|
255 |
+
'plugin_information',
|
256 |
+
array(
|
257 |
+
'slug' => $slug,
|
258 |
+
'fields' => array(
|
259 |
+
'downloaded' => false,
|
260 |
+
'rating' => false,
|
261 |
+
'description' => false,
|
262 |
+
'short_description' => true,
|
263 |
+
'donate_link' => false,
|
264 |
+
'tags' => false,
|
265 |
+
'sections' => true,
|
266 |
+
'homepage' => true,
|
267 |
+
'added' => false,
|
268 |
+
'last_updated' => false,
|
269 |
+
'compatibility' => false,
|
270 |
+
'tested' => false,
|
271 |
+
'requires' => false,
|
272 |
+
'downloadlink' => false,
|
273 |
+
'icons' => true,
|
274 |
+
'banners' => true,
|
275 |
+
),
|
276 |
+
)
|
277 |
+
);
|
278 |
+
set_transient( 'ti_plugin_info_' . $slug, $call_api, 30 * MINUTE_IN_SECONDS );
|
279 |
+
}
|
280 |
+
|
281 |
+
return $call_api;
|
282 |
+
}
|
283 |
+
|
284 |
+
/**
|
285 |
+
* Load css and scripts for the plugin recommend page.
|
286 |
+
*/
|
287 |
+
public function enqueue() {
|
288 |
+
$screen = get_current_screen();
|
289 |
+
|
290 |
+
if ( ! isset( $screen->id ) ) {
|
291 |
+
return;
|
292 |
+
}
|
293 |
+
if ( false === apply_filters( $this->product->get_key() . '_enqueue_recommend', false, $screen->id ) ) {
|
294 |
+
return;
|
295 |
+
}
|
296 |
+
|
297 |
+
?>
|
298 |
+
<style type="text/css">
|
299 |
+
.recommend-product {
|
300 |
+
display: flex;
|
301 |
+
justify-content: space-between;
|
302 |
+
flex-wrap: wrap;
|
303 |
+
}
|
304 |
+
|
305 |
+
.recommend-product .theme-banner {
|
306 |
+
width:200px;
|
307 |
+
margin: auto;
|
308 |
+
}
|
309 |
+
.recommend-product .plugin-banner {
|
310 |
+
width: 100px;
|
311 |
+
margin: auto;
|
312 |
+
}
|
313 |
+
|
314 |
+
.recommend-product .plugin_box .button span{
|
315 |
+
|
316 |
+
margin-top: 2px;
|
317 |
+
margin-right: 7px;
|
318 |
+
}
|
319 |
+
.recommend-product .plugin_box .button{
|
320 |
+
margin-bottom:10px;
|
321 |
+
}
|
322 |
+
.recommend-product .plugin_box {
|
323 |
+
margin-bottom: 20px;
|
324 |
+
padding-top: 5px;
|
325 |
+
display: flex;
|
326 |
+
box-shadow: 0px 0px 10px -5px rgba(0,0,0,0.55);
|
327 |
+
background: #fff;
|
328 |
+
border-radius: 5px;
|
329 |
+
flex-direction: column;
|
330 |
+
justify-content: flex-start;
|
331 |
+
width: 95%;
|
332 |
+
}
|
333 |
+
|
334 |
+
.recommend-product .title-action-wrapper {
|
335 |
+
padding: 15px 20px 5px 20px;
|
336 |
+
}
|
337 |
+
|
338 |
+
.recommend-product .plugin-name {
|
339 |
+
font-size: 18px;
|
340 |
+
display: block;
|
341 |
+
white-space: nowrap;
|
342 |
+
text-overflow: ellipsis;
|
343 |
+
margin-bottom: 10px;
|
344 |
+
overflow: hidden;
|
345 |
+
line-height: normal;
|
346 |
+
}
|
347 |
+
|
348 |
+
|
349 |
+
.recommend-product .plugin-desc {
|
350 |
+
display: block;
|
351 |
+
margin-bottom: 10px;
|
352 |
+
font-size: 13px;
|
353 |
+
color: #777;
|
354 |
+
line-height: 1.6;
|
355 |
+
}
|
356 |
+
|
357 |
+
.recommend-product .button-wrap > div {
|
358 |
+
padding: 0;
|
359 |
+
margin: 0;
|
360 |
+
}
|
361 |
+
|
362 |
+
.plugin-box-footer {
|
363 |
+
display: flex;
|
364 |
+
justify-content: space-around;
|
365 |
+
vertical-align: middle;
|
366 |
+
align-items: center;
|
367 |
+
padding: 0px 10px 5px;
|
368 |
+
flex: 1;
|
369 |
+
margin-top: auto;
|
370 |
+
}
|
371 |
+
</style>
|
372 |
+
<?php
|
373 |
+
}
|
374 |
+
}
|
vendor/codeinwp/themeisle-sdk/src/Modules/Uninstall_feedback.php
CHANGED
@@ -54,7 +54,9 @@ class Uninstall_Feedback extends Abstract_Module {
|
|
54 |
'placeholder' => 'What\'s the plugin\'s name?',
|
55 |
),
|
56 |
'I could not get the plugin to work' => array(
|
57 |
-
'
|
|
|
|
|
58 |
),
|
59 |
'I no longer need the plugin' => array(
|
60 |
'id' => 5,
|
@@ -62,7 +64,9 @@ class Uninstall_Feedback extends Abstract_Module {
|
|
62 |
'placeholder' => 'If you could improve one thing about our product, what would it be?',
|
63 |
),
|
64 |
'It\'s a temporary deactivation. I\'m just debugging an issue.' => array(
|
65 |
-
'
|
|
|
|
|
66 |
),
|
67 |
);
|
68 |
/**
|
@@ -75,7 +79,9 @@ class Uninstall_Feedback extends Abstract_Module {
|
|
75 |
'id' => 7,
|
76 |
),
|
77 |
'It lacks options' => array(
|
78 |
-
'
|
|
|
|
|
79 |
),
|
80 |
'Is not working with a plugin that I need' => array(
|
81 |
'id' => 9,
|
@@ -95,7 +101,7 @@ class Uninstall_Feedback extends Abstract_Module {
|
|
95 |
'Other' => array(
|
96 |
'id' => 999,
|
97 |
'type' => 'textarea',
|
98 |
-
'placeholder' => '
|
99 |
),
|
100 |
);
|
101 |
/**
|
@@ -103,13 +109,13 @@ class Uninstall_Feedback extends Abstract_Module {
|
|
103 |
*
|
104 |
* @var string $heading_plugin The heading of the modal
|
105 |
*/
|
106 |
-
private $heading_plugin = '
|
107 |
/**
|
108 |
* Default heading for theme.
|
109 |
*
|
110 |
* @var string $heading_theme The heading of the modal
|
111 |
*/
|
112 |
-
private $heading_theme = '
|
113 |
/**
|
114 |
* Default submit button action text.
|
115 |
*
|
@@ -127,342 +133,344 @@ class Uninstall_Feedback extends Abstract_Module {
|
|
127 |
* Loads the additional resources
|
128 |
*/
|
129 |
function load_resources() {
|
130 |
-
|
|
|
|
|
|
|
|
|
131 |
|
132 |
-
$
|
133 |
|
134 |
-
|
135 |
-
|
|
|
136 |
|
137 |
-
|
|
|
|
|
|
|
138 |
}
|
139 |
|
140 |
/**
|
141 |
-
*
|
142 |
-
*
|
143 |
-
* @param string $type The type of product.
|
144 |
-
* @param string $key The product key.
|
145 |
*/
|
146 |
-
function
|
147 |
-
$
|
148 |
-
$
|
149 |
-
$
|
150 |
-
|
151 |
-
|
152 |
-
|
|
|
|
|
153 |
?>
|
154 |
-
<
|
155 |
-
|
156 |
-
|
157 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
|
159 |
-
|
160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
}
|
162 |
|
163 |
-
|
164 |
-
|
|
|
|
|
165 |
}
|
166 |
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
color: #
|
172 |
-
font-
|
173 |
-
|
174 |
-
|
175 |
-
padding: 40px 40px 0 120px;
|
176 |
-
text-transform: uppercase;
|
177 |
-
width: 100%;
|
178 |
}
|
179 |
|
180 |
-
|
181 |
-
padding
|
182 |
-
margin: 0 1px;
|
183 |
}
|
184 |
|
185 |
-
|
186 |
-
width: 125px;
|
187 |
-
display: block;
|
188 |
margin: 0;
|
189 |
-
|
190 |
}
|
191 |
|
192 |
-
|
193 |
-
margin
|
194 |
-
margin-top: 2px;
|
195 |
-
padding-top: 0px;
|
196 |
}
|
197 |
|
198 |
-
|
199 |
-
|
200 |
-
margin-bottom: 0px;
|
201 |
}
|
202 |
|
203 |
-
|
|
|
|
|
204 |
display: none;
|
205 |
-
|
206 |
-
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container.<?php echo $key; ?>-container-disc-open #<?php echo $key; ?>-info-disclosure-content {
|
207 |
-
display: block;
|
208 |
-
position:absolute;
|
209 |
-
bottom: 100px;
|
210 |
}
|
211 |
|
212 |
-
|
213 |
-
|
|
|
|
|
|
|
214 |
}
|
215 |
|
216 |
-
|
217 |
-
|
218 |
-
}
|
219 |
-
body.<?php echo $suffix; ?> .<?php echo $key; ?>-container #<?php echo $key; ?>-info-disclosure {
|
220 |
-
position: absolute;
|
221 |
-
top: -50px;
|
222 |
-
font-size: 13px;
|
223 |
-
color: #8d9192;
|
224 |
-
font-weight: 400;
|
225 |
-
right: 40px;
|
226 |
}
|
227 |
|
228 |
-
|
229 |
-
|
230 |
-
padding: 30px 40px;
|
231 |
-
background-color: #eaeaea;
|
232 |
}
|
233 |
|
234 |
-
|
235 |
-
|
236 |
-
border: none;
|
237 |
-
box-shadow: none;
|
238 |
-
color: #ffffff;
|
239 |
-
font-size: 15px;
|
240 |
-
font-weight: 700;
|
241 |
-
height: auto;
|
242 |
-
line-height: 20px;
|
243 |
-
padding: 10px 15px;
|
244 |
-
text-transform: uppercase;
|
245 |
-
-webkit-transition: 0.3s ease;
|
246 |
-
-moz-transition: 0.3s ease;
|
247 |
-
-ms-transition: 0.3s ease;
|
248 |
-
-o-transition: 0.3s ease;
|
249 |
-
transition: 0.3s ease;
|
250 |
}
|
251 |
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
color: #8d9192;
|
256 |
-
font-weight: 400;
|
257 |
-
float: right;
|
258 |
-
line-height: 40px;
|
259 |
-
padding: 0;
|
260 |
-
text-decoration: underline;
|
261 |
-
text-shadow: none;
|
262 |
-
text-transform: none;
|
263 |
}
|
264 |
|
265 |
-
|
266 |
-
|
|
|
267 |
}
|
268 |
|
269 |
-
|
270 |
-
|
|
|
|
|
|
|
271 |
}
|
272 |
|
273 |
-
|
274 |
-
|
275 |
-
outline: none;
|
276 |
}
|
277 |
|
278 |
-
|
279 |
-
|
280 |
-
transform: translateY(0);
|
281 |
}
|
282 |
|
283 |
-
|
284 |
-
|
|
|
285 |
}
|
286 |
|
287 |
-
|
288 |
-
|
|
|
|
|
|
|
|
|
|
|
289 |
}
|
290 |
|
291 |
-
|
292 |
-
|
|
|
293 |
}
|
294 |
|
295 |
-
|
296 |
-
margin:
|
297 |
}
|
298 |
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
|
|
303 |
}
|
304 |
|
305 |
-
|
306 |
-
|
307 |
-
line-height: 28px;
|
308 |
-
font-size: 15px;
|
309 |
}
|
310 |
|
311 |
-
|
312 |
-
|
313 |
}
|
314 |
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
320 |
}
|
321 |
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
}
|
326 |
|
327 |
-
|
328 |
-
|
329 |
}
|
330 |
|
331 |
-
|
332 |
-
|
333 |
-
display: block;
|
334 |
-
float: none;
|
335 |
-
font-weight: 700;
|
336 |
-
line-height: 1;
|
337 |
-
padding: 0;
|
338 |
-
text-align: left;
|
339 |
-
width: 100%;
|
340 |
}
|
341 |
|
342 |
-
.<?php echo $key; ?>-container #TB_title #TB_ajaxWindowTitle span {
|
343 |
-
color: #8d9192;
|
344 |
-
display: block;
|
345 |
-
font-size: 15px;
|
346 |
-
font-weight: 400;
|
347 |
-
margin-top: 5px;
|
348 |
-
text-transform: none;
|
349 |
-
}
|
350 |
|
351 |
-
|
352 |
-
|
353 |
display: block;
|
354 |
position: absolute;
|
355 |
-
|
356 |
-
|
|
|
|
|
|
|
|
|
|
|
357 |
}
|
358 |
|
359 |
-
.
|
360 |
-
|
|
|
|
|
|
|
|
|
|
|
361 |
}
|
362 |
|
363 |
-
|
364 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
}
|
366 |
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
color: #
|
372 |
}
|
373 |
|
374 |
-
.<?php echo $key; ?>-container #TB_closeWindowButton .tb-close-icon {
|
375 |
-
text-align: right;
|
376 |
-
line-height: 25px;
|
377 |
-
width: 25px;
|
378 |
-
height: 25px;
|
379 |
-
}
|
380 |
|
381 |
-
|
382 |
-
|
383 |
-
outline: none;
|
384 |
}
|
385 |
|
386 |
-
|
387 |
-
|
388 |
}
|
389 |
|
390 |
-
body
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
bottom: 0
|
396 |
-
right: 0
|
397 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
398 |
}
|
399 |
</style>
|
400 |
<?php
|
401 |
-
do_action( $this->product->get_key() . '_uninstall_feedback_after_css' );
|
402 |
}
|
403 |
|
404 |
/**
|
405 |
-
*
|
406 |
-
*
|
407 |
-
* @param string $type The type of product.
|
408 |
-
* @param string $key The product key.
|
409 |
-
* @param string $src The url that will hijack the deactivate button url.
|
410 |
*/
|
411 |
-
function
|
412 |
-
$
|
413 |
-
$key = esc_attr( $key );
|
414 |
-
$heading = apply_filters( $this->product->get_key() . '_feedback_deactivate_heading', $heading );
|
415 |
?>
|
416 |
<script type="text/javascript" id="ti-deactivate-js">
|
417 |
(function ($) {
|
418 |
$(document).ready(function () {
|
419 |
-
|
420 |
-
|
421 |
-
<?php
|
422 |
-
if ( 'theme' === $type ) {
|
423 |
-
?>
|
424 |
-
auto_trigger = true;
|
425 |
-
if ($('a.ti-auto-anchor').length == 0) {
|
426 |
-
$('body').append($('<a class="ti-auto-anchor" href=""></a>'));
|
427 |
-
}
|
428 |
-
target_element = 'a.ti-auto-anchor';
|
429 |
-
<?php
|
430 |
-
}
|
431 |
-
?>
|
432 |
|
433 |
-
|
434 |
-
setTimeout(function () {
|
435 |
-
$('a.ti-auto-anchor').trigger('click');
|
436 |
-
}, <?php echo self::AUTO_TRIGGER_DEACTIVATE_WINDOW_SECONDS * 1000; ?> );
|
437 |
-
}
|
438 |
-
$(document).on('thickbox:removed', function () {
|
439 |
-
$.post(ajaxurl, {
|
440 |
-
'action': '<?php echo $key . '_uninstall_feedback'; ?>',
|
441 |
-
'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
442 |
-
'type': '<?php echo $type; ?>',
|
443 |
-
'key': '<?php echo $key; ?>'
|
444 |
-
});
|
445 |
-
});
|
446 |
-
var href = $(target_element).attr('href');
|
447 |
-
$('#<?php echo $key; ?>ti-deactivate-no').attr('data-ti-action', href).on('click', function (e) {
|
448 |
e.preventDefault();
|
449 |
-
|
450 |
-
|
451 |
-
$('body').unbind('thickbox:removed');
|
452 |
-
tb_remove();
|
453 |
-
var redirect = $(this).attr('data-ti-action');
|
454 |
-
if (redirect !== '') {
|
455 |
-
location.href = redirect;
|
456 |
-
}
|
457 |
});
|
458 |
|
459 |
-
$('
|
460 |
-
|
|
|
|
|
461 |
|
462 |
-
|
463 |
-
|
|
|
|
|
464 |
$('#<?php echo $key; ?>ti-deactivate-yes').attr('disabled', 'disabled');
|
465 |
-
radio.parent().find('textarea').on('keyup', function (
|
466 |
if ($(this).val().length === 0) {
|
467 |
$('#<?php echo $key; ?>ti-deactivate-yes').attr('disabled', 'disabled');
|
468 |
} else {
|
@@ -473,127 +481,236 @@ class Uninstall_Feedback extends Abstract_Module {
|
|
473 |
$('#<?php echo $key; ?>ti-deactivate-yes').removeAttr('disabled');
|
474 |
}
|
475 |
});
|
476 |
-
|
477 |
-
|
478 |
-
return false;
|
479 |
-
});
|
480 |
-
$('#<?php echo $key; ?>ti-deactivate-yes').attr('data-ti-action', href).on('click', function (e) {
|
481 |
e.preventDefault();
|
482 |
e.stopPropagation();
|
|
|
|
|
|
|
483 |
$.post(ajaxurl, {
|
484 |
-
'action': '<?php echo $key . '_uninstall_feedback'; ?>',
|
485 |
'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
486 |
-
'id':
|
487 |
-
'msg':
|
488 |
-
'type': '
|
|
|
489 |
});
|
490 |
-
|
491 |
-
|
492 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
493 |
} else {
|
494 |
-
$('
|
495 |
-
tb_remove();
|
496 |
}
|
497 |
});
|
498 |
|
499 |
-
$(
|
500 |
-
|
501 |
-
|
502 |
-
|
|
|
|
|
|
|
|
|
|
|
503 |
});
|
504 |
|
505 |
-
function
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
514 |
}
|
515 |
-
}
|
516 |
-
}
|
517 |
});
|
518 |
})(jQuery);
|
|
|
519 |
</script>
|
520 |
<?php
|
521 |
-
|
522 |
do_action( $this->product->get_key() . '_uninstall_feedback_after_js' );
|
523 |
}
|
524 |
|
525 |
/**
|
526 |
-
*
|
527 |
*
|
528 |
-
* @
|
529 |
-
* @param string $key The product key.
|
530 |
*/
|
531 |
-
function
|
532 |
-
$options = Product::PLUGIN_TYPE === $type ? $this->options_plugin : $this->options_theme;
|
533 |
-
$button_cancel = Product::PLUGIN_TYPE === $type ? $this->button_cancel : 'Skip';
|
534 |
-
$button_submit = Product::PLUGIN_TYPE === $type ? $this->button_submit : 'Submit';
|
535 |
-
$options = $this->randomize_options( apply_filters( $this->product->get_key() . '_feedback_deactivate_options', $options ) );
|
536 |
-
$button_submit = apply_filters( $this->product->get_key() . '_feedback_deactivate_button_submit', $button_submit );
|
537 |
-
$button_cancel = apply_filters( $this->product->get_key() . '_feedback_deactivate_button_cancel', $button_cancel );
|
538 |
-
|
539 |
-
$options += $this->other;
|
540 |
-
|
541 |
-
$list = '';
|
542 |
-
foreach ( $options as $title => $attributes ) {
|
543 |
-
$id = $attributes['id'];
|
544 |
-
$list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
|
545 |
-
if ( array_key_exists( 'type', $attributes ) ) {
|
546 |
-
$list .= '<div>';
|
547 |
-
$placeholder = array_key_exists( 'placeholder', $attributes ) ? $attributes['placeholder'] : '';
|
548 |
-
switch ( $attributes['type'] ) {
|
549 |
-
case 'text':
|
550 |
-
$list .= '<textarea style="width: 100%" rows="1" name="comments" placeholder="' . $placeholder . '"></textarea>';
|
551 |
-
break;
|
552 |
-
case 'textarea':
|
553 |
-
$list .= '<textarea style="width: 100%" rows="2" name="comments" placeholder="' . $placeholder . '"></textarea>';
|
554 |
-
break;
|
555 |
-
}
|
556 |
-
$list .= '</div>';
|
557 |
-
}
|
558 |
-
$list .= '</li>';
|
559 |
-
}
|
560 |
-
|
561 |
$disclosure_new_labels = apply_filters( $this->product->get_slug() . '_themeisle_sdk_disclosure_content_labels', [], $this->product );
|
562 |
$disclosure_labels = array_merge(
|
563 |
[
|
564 |
'title' => 'Below is a detailed view of all data that ThemeIsle will receive if you fill in this survey. No domain name, email address or IP addresses are transmited after you submit the survey.',
|
565 |
'items' => [
|
566 |
sprintf( '%s %s version %s %s %s %s', '<strong>', ucwords( $this->product->get_type() ), '</strong>', '<code>', $this->product->get_version(), '</code>' ),
|
567 |
-
sprintf( '%s Uninstall reason %s %s Selected
|
568 |
],
|
569 |
],
|
570 |
$disclosure_new_labels
|
571 |
);
|
572 |
|
573 |
-
$
|
574 |
-
$info_disclosure_content = '<div id="' . $this->product->get_key() . '-info-disclosure-content"><p>' . wp_kses_post( $disclosure_labels['title'] ) . '</p><ul>';
|
575 |
foreach ( $disclosure_labels['items'] as $disclosure_item ) {
|
576 |
$info_disclosure_content .= sprintf( '<li>%s</li>', wp_kses_post( $disclosure_item ) );
|
577 |
}
|
578 |
$info_disclosure_content .= '</ul></div>';
|
579 |
|
580 |
-
return
|
581 |
-
'<div id="' . $this->product->get_key() . '"><ul class="ti-list">' . $list . '</ul>'
|
582 |
-
. $info_disclosure_content
|
583 |
-
. '<div class="actions">'
|
584 |
-
. get_submit_button(
|
585 |
-
$button_submit,
|
586 |
-
'secondary',
|
587 |
-
$this->product->get_key() . 'ti-deactivate-yes',
|
588 |
-
false,
|
589 |
-
array(
|
590 |
-
'data-after-text' => $button_submit,
|
591 |
-
'disabled' => true,
|
592 |
-
)
|
593 |
-
)
|
594 |
-
. wp_kses_post( $info_disclosure_link )
|
595 |
-
. get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
|
596 |
-
. '</div></div>';
|
597 |
}
|
598 |
|
599 |
/**
|
@@ -719,6 +836,11 @@ class Uninstall_Feedback extends Abstract_Module {
|
|
719 |
* @return Uninstall_Feedback Current module instance.
|
720 |
*/
|
721 |
public function load( $product ) {
|
|
|
|
|
|
|
|
|
|
|
722 |
$this->product = $product;
|
723 |
add_action( 'admin_head', array( $this, 'load_resources' ) );
|
724 |
add_action( 'wp_ajax_' . $this->product->get_key() . '_uninstall_feedback', array( $this, 'post_deactivate' ) );
|
54 |
'placeholder' => 'What\'s the plugin\'s name?',
|
55 |
),
|
56 |
'I could not get the plugin to work' => array(
|
57 |
+
'type' => 'textarea',
|
58 |
+
'placeholder' => 'What problem are you experiencing?',
|
59 |
+
'id' => 4,
|
60 |
),
|
61 |
'I no longer need the plugin' => array(
|
62 |
'id' => 5,
|
64 |
'placeholder' => 'If you could improve one thing about our product, what would it be?',
|
65 |
),
|
66 |
'It\'s a temporary deactivation. I\'m just debugging an issue.' => array(
|
67 |
+
'type' => 'textarea',
|
68 |
+
'placeholder' => 'What problem are you experiencing?',
|
69 |
+
'id' => 6,
|
70 |
),
|
71 |
);
|
72 |
/**
|
79 |
'id' => 7,
|
80 |
),
|
81 |
'It lacks options' => array(
|
82 |
+
'placeholder' => 'What option is missing?',
|
83 |
+
'type' => 'text',
|
84 |
+
'id' => 8,
|
85 |
),
|
86 |
'Is not working with a plugin that I need' => array(
|
87 |
'id' => 9,
|
101 |
'Other' => array(
|
102 |
'id' => 999,
|
103 |
'type' => 'textarea',
|
104 |
+
'placeholder' => 'What can we do better?',
|
105 |
),
|
106 |
);
|
107 |
/**
|
109 |
*
|
110 |
* @var string $heading_plugin The heading of the modal
|
111 |
*/
|
112 |
+
private $heading_plugin = 'What’s wrong?';
|
113 |
/**
|
114 |
* Default heading for theme.
|
115 |
*
|
116 |
* @var string $heading_theme The heading of the modal
|
117 |
*/
|
118 |
+
private $heading_theme = 'What does not work for you in {theme}?';
|
119 |
/**
|
120 |
* Default submit button action text.
|
121 |
*
|
133 |
* Loads the additional resources
|
134 |
*/
|
135 |
function load_resources() {
|
136 |
+
$screen = get_current_screen();
|
137 |
+
|
138 |
+
if ( ! $screen || ! in_array( $screen->id, array( 'theme-install', 'plugins' ) ) ) {
|
139 |
+
return;
|
140 |
+
}
|
141 |
|
142 |
+
$this->add_feedback_popup_style();
|
143 |
|
144 |
+
if ( $this->product->get_type() === 'theme' ) {
|
145 |
+
$this->add_theme_feedback_drawer_js();
|
146 |
+
$this->render_theme_feedback_popup();
|
147 |
|
148 |
+
return;
|
149 |
+
}
|
150 |
+
$this->add_plugin_feedback_popup_js();
|
151 |
+
$this->render_plugin_feedback_popup();
|
152 |
}
|
153 |
|
154 |
/**
|
155 |
+
* Render theme feedback drawer.
|
|
|
|
|
|
|
156 |
*/
|
157 |
+
private function render_theme_feedback_popup() {
|
158 |
+
$heading = str_replace( '{theme}', $this->product->get_name(), $this->heading_theme );
|
159 |
+
$button_submit = apply_filters( $this->product->get_key() . '_feedback_deactivate_button_submit', 'Submit' );
|
160 |
+
$options = $this->options_theme;
|
161 |
+
$options = $this->randomize_options( apply_filters( $this->product->get_key() . '_feedback_deactivate_options', $options ) );
|
162 |
+
$info_disclosure_link = '<a href="#" class="info-disclosure-link">' . apply_filters( $this->product->get_slug() . '_themeisle_sdk_info_collect_cta', 'What info do we collect?' ) . '</a>';
|
163 |
+
|
164 |
+
$options += $this->other;
|
165 |
+
|
166 |
?>
|
167 |
+
<div class="ti-theme-uninstall-feedback-drawer ti-feedback">
|
168 |
+
<div class="popup--header">
|
169 |
+
<h5><?php echo wp_kses( $heading, array( 'span' => true ) ); ?> </h5>
|
170 |
+
<button class="toggle"><span>×</span></button>
|
171 |
+
</div><!--/.popup--header-->
|
172 |
+
<div class="popup--body">
|
173 |
+
<?php $this->render_options_list( $options ); ?>
|
174 |
+
</div><!--/.popup--body-->
|
175 |
+
<div class="popup--footer">
|
176 |
+
<div class="actions">
|
177 |
+
<?php
|
178 |
+
echo wp_kses_post( $info_disclosure_link );
|
179 |
+
echo wp_kses_post( $this->get_disclosure_labels() );
|
180 |
+
echo '<div class="buttons">';
|
181 |
+
echo get_submit_button(
|
182 |
+
$button_submit,
|
183 |
+
'secondary',
|
184 |
+
$this->product->get_key() . 'ti-deactivate-yes',
|
185 |
+
false,
|
186 |
+
array(
|
187 |
+
'data-after-text' => $button_submit,
|
188 |
+
'disabled' => true,
|
189 |
+
)
|
190 |
+
);
|
191 |
+
echo '</div>';
|
192 |
+
?>
|
193 |
+
</div><!--/.actions-->
|
194 |
+
</div><!--/.popup--footer-->
|
195 |
+
</div>
|
196 |
+
<?php
|
197 |
+
}
|
198 |
|
199 |
+
/**
|
200 |
+
* Add feedback styles.
|
201 |
+
*/
|
202 |
+
private function add_feedback_popup_style() {
|
203 |
+
?>
|
204 |
+
<style>
|
205 |
+
.ti-feedback {
|
206 |
+
background: #fff;
|
207 |
+
max-width: 400px;
|
208 |
+
z-index: 10000;
|
209 |
+
box-shadow: 0 0 15px -5px rgba(0, 0, 0, .5);
|
210 |
+
transition: all .3s ease-out;
|
211 |
}
|
212 |
|
213 |
+
|
214 |
+
.ti-feedback .popup--header {
|
215 |
+
position: relative;
|
216 |
+
background-color: #23A1CE;
|
217 |
}
|
218 |
|
219 |
+
.ti-feedback .popup--header h5 {
|
220 |
+
margin: 0;
|
221 |
+
font-size: 16px;
|
222 |
+
padding: 15px;
|
223 |
+
color: #fff;
|
224 |
+
font-weight: 600;
|
225 |
+
text-align: center;
|
226 |
+
letter-spacing: .3px;
|
|
|
|
|
|
|
227 |
}
|
228 |
|
229 |
+
.ti-feedback .popup--body {
|
230 |
+
padding: 15px;
|
|
|
231 |
}
|
232 |
|
233 |
+
.ti-feedback .popup--form {
|
|
|
|
|
234 |
margin: 0;
|
235 |
+
font-size: 13px;
|
236 |
}
|
237 |
|
238 |
+
.ti-feedback .popup--form input[type="radio"] {
|
239 |
+
margin: 0 10px 0 0;
|
|
|
|
|
240 |
}
|
241 |
|
242 |
+
.ti-feedback .popup--form input[type="radio"]:checked ~ textarea {
|
243 |
+
display: block;
|
|
|
244 |
}
|
245 |
|
246 |
+
.ti-feedback .popup--form textarea {
|
247 |
+
width: 100%;
|
248 |
+
margin: 10px 0 0;
|
249 |
display: none;
|
250 |
+
max-height: 150px;
|
|
|
|
|
|
|
|
|
251 |
}
|
252 |
|
253 |
+
.ti-feedback li {
|
254 |
+
display: flex;
|
255 |
+
align-items: center;
|
256 |
+
margin-bottom: 15px;
|
257 |
+
flex-wrap: wrap;
|
258 |
}
|
259 |
|
260 |
+
.ti-feedback li label {
|
261 |
+
max-width: 90%;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
}
|
263 |
|
264 |
+
.ti-feedback li:last-child {
|
265 |
+
margin-bottom: 0;
|
|
|
|
|
266 |
}
|
267 |
|
268 |
+
.ti-feedback .popup--footer {
|
269 |
+
padding: 0 15px 15px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
270 |
}
|
271 |
|
272 |
+
.ti-feedback .actions {
|
273 |
+
display: flex;
|
274 |
+
flex-wrap: wrap;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
}
|
276 |
|
277 |
+
.info-disclosure-link {
|
278 |
+
width: 100%;
|
279 |
+
margin-bottom: 15px;
|
280 |
}
|
281 |
|
282 |
+
.ti-feedback .info-disclosure-content {
|
283 |
+
max-height: 0;
|
284 |
+
overflow: hidden;
|
285 |
+
width: 100%;
|
286 |
+
transition: .3s ease;
|
287 |
}
|
288 |
|
289 |
+
.ti-feedback .info-disclosure-content.active {
|
290 |
+
max-height: 300px;
|
|
|
291 |
}
|
292 |
|
293 |
+
.ti-feedback .info-disclosure-content p {
|
294 |
+
margin: 0;
|
|
|
295 |
}
|
296 |
|
297 |
+
.ti-feedback .info-disclosure-content ul {
|
298 |
+
margin: 10px 0;
|
299 |
+
border-radius: 3px;
|
300 |
}
|
301 |
|
302 |
+
.ti-feedback .info-disclosure-content ul li {
|
303 |
+
display: flex;
|
304 |
+
align-items: center;
|
305 |
+
justify-content: space-between;
|
306 |
+
margin-bottom: 0;
|
307 |
+
padding: 5px 0;
|
308 |
+
border-bottom: 1px solid #ccc;
|
309 |
}
|
310 |
|
311 |
+
.ti-feedback .buttons {
|
312 |
+
display: flex;
|
313 |
+
width: 100%;
|
314 |
}
|
315 |
|
316 |
+
.ti-feedback .buttons input:last-child {
|
317 |
+
margin-left: auto;
|
318 |
}
|
319 |
|
320 |
+
.ti-theme-uninstall-feedback-drawer {
|
321 |
+
border-top-left-radius: 5px;
|
322 |
+
position: fixed;
|
323 |
+
top: 100%;
|
324 |
+
right: 15px;
|
325 |
}
|
326 |
|
327 |
+
.ti-theme-uninstall-feedback-drawer.active {
|
328 |
+
transform: translateY(-100%);
|
|
|
|
|
329 |
}
|
330 |
|
331 |
+
.ti-theme-uninstall-feedback-drawer .popup--header {
|
332 |
+
border-top-left-radius: 5px;
|
333 |
}
|
334 |
|
335 |
+
.ti-theme-uninstall-feedback-drawer .popup--header .toggle {
|
336 |
+
position: absolute;
|
337 |
+
padding: 3px 0;
|
338 |
+
width: 30px;
|
339 |
+
top: -26px;
|
340 |
+
right: 0;
|
341 |
+
cursor: pointer;
|
342 |
+
border-top-left-radius: 5px;
|
343 |
+
border-top-right-radius: 5px;
|
344 |
+
font-size: 20px;
|
345 |
+
background-color: #23A1CE;
|
346 |
+
color: #fff;
|
347 |
+
border: none;
|
348 |
+
line-height: 20px;
|
349 |
}
|
350 |
|
351 |
+
.ti-theme-uninstall-feedback-drawer .toggle span {
|
352 |
+
margin: 0;
|
353 |
+
display: inline-block;
|
354 |
}
|
355 |
|
356 |
+
.ti-theme-uninstall-feedback-drawer:not(.active) .toggle span {
|
357 |
+
transform: rotate(45deg);
|
358 |
}
|
359 |
|
360 |
+
.ti-theme-uninstall-feedback-drawer .popup--header .toggle:hover {
|
361 |
+
background-color: #1880a5;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
}
|
363 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
364 |
|
365 |
+
.ti-plugin-uninstall-feedback-popup .popup--header:before {
|
366 |
+
content: "";
|
367 |
display: block;
|
368 |
position: absolute;
|
369 |
+
border: 20px solid #23A1CE;
|
370 |
+
left: -10px;
|
371 |
+
top: 50%;
|
372 |
+
border-top: 20px solid transparent;
|
373 |
+
border-bottom: 20px solid transparent;
|
374 |
+
border-left: 0;
|
375 |
+
transform: translateY(-50%);
|
376 |
}
|
377 |
|
378 |
+
.ti-plugin-uninstall-feedback-popup {
|
379 |
+
display: none;
|
380 |
+
position: absolute;
|
381 |
+
white-space: normal;
|
382 |
+
width: 400px;
|
383 |
+
left: 100%;
|
384 |
+
top: -15px;
|
385 |
}
|
386 |
|
387 |
+
.ti-plugin-uninstall-feedback-popup.sending-feedback .popup--body i {
|
388 |
+
animation: rotation 2s infinite linear;
|
389 |
+
display: block;
|
390 |
+
float: none;
|
391 |
+
align-items: center;
|
392 |
+
width: 100%;
|
393 |
+
margin: 0 auto;
|
394 |
+
height: 100%;
|
395 |
+
background: transparent;
|
396 |
+
padding: 0;
|
397 |
}
|
398 |
|
399 |
+
.ti-plugin-uninstall-feedback-popup.sending-feedback .popup--body i:before {
|
400 |
+
padding: 0;
|
401 |
+
background: transparent;
|
402 |
+
box-shadow: none;
|
403 |
+
color: #b4b9be
|
404 |
}
|
405 |
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
|
407 |
+
.ti-plugin-uninstall-feedback-popup.active {
|
408 |
+
display: block;
|
|
|
409 |
}
|
410 |
|
411 |
+
tr[data-plugin^="<?php echo $this->product->get_slug(); ?>"] .deactivate {
|
412 |
+
position: relative;
|
413 |
}
|
414 |
|
415 |
+
body.ti-feedback-open .ti-feedback-overlay {
|
416 |
+
content: "";
|
417 |
+
display: block;
|
418 |
+
background-color: rgba(0, 0, 0, 0.5);
|
419 |
+
top: 0;
|
420 |
+
bottom: 0;
|
421 |
+
right: 0;
|
422 |
+
left: 0;
|
423 |
+
z-index: 10000;
|
424 |
+
position: fixed;
|
425 |
+
}
|
426 |
+
|
427 |
+
@media (max-width: 768px) {
|
428 |
+
.ti-plugin-uninstall-feedback-popup {
|
429 |
+
position: fixed;
|
430 |
+
max-width: 100%;
|
431 |
+
margin: 0 auto;
|
432 |
+
left: 50%;
|
433 |
+
top: 50px;
|
434 |
+
transform: translateX(-50%);
|
435 |
+
}
|
436 |
+
|
437 |
+
.ti-plugin-uninstall-feedback-popup .popup--header:before {
|
438 |
+
display: none;
|
439 |
+
}
|
440 |
}
|
441 |
</style>
|
442 |
<?php
|
|
|
443 |
}
|
444 |
|
445 |
/**
|
446 |
+
* Theme feedback drawer JS.
|
|
|
|
|
|
|
|
|
447 |
*/
|
448 |
+
private function add_theme_feedback_drawer_js() {
|
449 |
+
$key = $this->product->get_key();
|
|
|
|
|
450 |
?>
|
451 |
<script type="text/javascript" id="ti-deactivate-js">
|
452 |
(function ($) {
|
453 |
$(document).ready(function () {
|
454 |
+
setTimeout(function () {
|
455 |
+
$('.ti-theme-uninstall-feedback-drawer').addClass('active');
|
456 |
+
}, <?php echo absint( self::AUTO_TRIGGER_DEACTIVATE_WINDOW_SECONDS * 1000 ); ?> );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
457 |
|
458 |
+
$('.ti-theme-uninstall-feedback-drawer .toggle').on('click', function (e) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
459 |
e.preventDefault();
|
460 |
+
$('.ti-theme-uninstall-feedback-drawer').toggleClass('active');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
461 |
});
|
462 |
|
463 |
+
$('.info-disclosure-link').on('click', function (e) {
|
464 |
+
e.preventDefault();
|
465 |
+
$('.info-disclosure-content').toggleClass('active');
|
466 |
+
});
|
467 |
|
468 |
+
$('.ti-theme-uninstall-feedback-drawer input[type="radio"]').on('change', function () {
|
469 |
+
var radio = $(this);
|
470 |
+
if (radio.parent().find('textarea').length > 0 &&
|
471 |
+
radio.parent().find('textarea').val().length === 0) {
|
472 |
$('#<?php echo $key; ?>ti-deactivate-yes').attr('disabled', 'disabled');
|
473 |
+
radio.parent().find('textarea').on('keyup', function (e) {
|
474 |
if ($(this).val().length === 0) {
|
475 |
$('#<?php echo $key; ?>ti-deactivate-yes').attr('disabled', 'disabled');
|
476 |
} else {
|
481 |
$('#<?php echo $key; ?>ti-deactivate-yes').removeAttr('disabled');
|
482 |
}
|
483 |
});
|
484 |
+
|
485 |
+
$('#<?php echo $key; ?>ti-deactivate-yes').on('click', function (e) {
|
|
|
|
|
|
|
486 |
e.preventDefault();
|
487 |
e.stopPropagation();
|
488 |
+
|
489 |
+
var selectedOption = $(
|
490 |
+
'.ti-theme-uninstall-feedback-drawer input[name="ti-deactivate-option"]:checked');
|
491 |
$.post(ajaxurl, {
|
492 |
+
'action': '<?php echo esc_attr( $key ) . '_uninstall_feedback'; ?>',
|
493 |
'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
494 |
+
'id': selectedOption.parent().attr('ti-option-id'),
|
495 |
+
'msg': selectedOption.parent().find('textarea').val(),
|
496 |
+
'type': 'theme',
|
497 |
+
'key': '<?php echo esc_attr( $key ); ?>'
|
498 |
});
|
499 |
+
$('.ti-theme-uninstall-feedback-drawer').fadeOut();
|
500 |
+
});
|
501 |
+
});
|
502 |
+
})(jQuery);
|
503 |
+
|
504 |
+
</script>
|
505 |
+
<?php
|
506 |
+
do_action( $this->product->get_key() . '_uninstall_feedback_after_js' );
|
507 |
+
}
|
508 |
+
|
509 |
+
/**
|
510 |
+
* Render the options list.
|
511 |
+
*
|
512 |
+
* @param array $options the options for the feedback form.
|
513 |
+
*/
|
514 |
+
private function render_options_list( $options ) {
|
515 |
+
$key = $this->product->get_key();
|
516 |
+
$inputs_row_map = [
|
517 |
+
'text' => 1,
|
518 |
+
'textarea' => 2,
|
519 |
+
];
|
520 |
+
?>
|
521 |
+
<ul class="popup--form">
|
522 |
+
<?php foreach ( $options as $title => $attributes ) { ?>
|
523 |
+
<li ti-option-id="<?php echo esc_attr( $attributes['id'] ); ?>">
|
524 |
+
<input type="radio" name="ti-deactivate-option" id="<?php echo esc_attr( $key . $attributes['id'] ); ?>">
|
525 |
+
<label for="<?php echo esc_attr( $key . $attributes['id'] ); ?>">
|
526 |
+
<?php echo str_replace( '{theme}', $this->product->get_name(), $title ); ?>
|
527 |
+
</label>
|
528 |
+
<?php
|
529 |
+
if ( array_key_exists( 'type', $attributes ) ) {
|
530 |
+
$placeholder = array_key_exists( 'placeholder', $attributes ) ? $attributes['placeholder'] : '';
|
531 |
+
echo '<textarea width="100%" rows="' . $inputs_row_map[ $attributes['type'] ] . '" name="comments" placeholder="' . esc_attr( $placeholder ) . '"></textarea>';
|
532 |
+
}
|
533 |
+
?>
|
534 |
+
</li>
|
535 |
+
<?php } ?>
|
536 |
+
</ul>
|
537 |
+
<?php
|
538 |
+
}
|
539 |
+
|
540 |
+
/**
|
541 |
+
* Render plugin feedback popup.
|
542 |
+
*/
|
543 |
+
private function render_plugin_feedback_popup() {
|
544 |
+
$button_cancel = apply_filters( $this->product->get_key() . '_feedback_deactivate_button_cancel', $this->button_cancel );
|
545 |
+
$button_submit = apply_filters( $this->product->get_key() . '_feedback_deactivate_button_submit', $this->button_submit );
|
546 |
+
$options = $this->randomize_options( apply_filters( $this->product->get_key() . '_feedback_deactivate_options', $this->options_plugin ) );
|
547 |
+
$info_disclosure_link = '<a href="#" class="info-disclosure-link">' . apply_filters( $this->product->get_slug() . '_themeisle_sdk_info_collect_cta', 'What info do we collect?' ) . '</a>';
|
548 |
+
|
549 |
+
$options += $this->other;
|
550 |
+
?>
|
551 |
+
<div class="ti-plugin-uninstall-feedback-popup ti-feedback" id="<?php echo esc_attr( $this->product->get_slug() . '_uninstall_feedback_popup' ); ?>">
|
552 |
+
<div class="popup--header">
|
553 |
+
<h5><?php echo wp_kses( $this->heading_plugin, array( 'span' => true ) ); ?> </h5>
|
554 |
+
</div><!--/.popup--header-->
|
555 |
+
<div class="popup--body">
|
556 |
+
<?php $this->render_options_list( $options ); ?>
|
557 |
+
</div><!--/.popup--body-->
|
558 |
+
<div class="popup--footer">
|
559 |
+
<div class="actions">
|
560 |
+
<?php
|
561 |
+
echo wp_kses_post( $info_disclosure_link );
|
562 |
+
echo wp_kses_post( $this->get_disclosure_labels() );
|
563 |
+
echo '<div class="buttons">';
|
564 |
+
echo get_submit_button(
|
565 |
+
$button_cancel,
|
566 |
+
'secondary',
|
567 |
+
$this->product->get_key() . 'ti-deactivate-no',
|
568 |
+
false
|
569 |
+
);
|
570 |
+
echo get_submit_button(
|
571 |
+
$button_submit,
|
572 |
+
'primary',
|
573 |
+
$this->product->get_key() . 'ti-deactivate-yes',
|
574 |
+
false,
|
575 |
+
array(
|
576 |
+
'data-after-text' => $button_submit,
|
577 |
+
'disabled' => true,
|
578 |
+
)
|
579 |
+
);
|
580 |
+
echo '</div>';
|
581 |
+
?>
|
582 |
+
</div><!--/.actions-->
|
583 |
+
</div><!--/.popup--footer-->
|
584 |
+
</div>
|
585 |
+
|
586 |
+
<?php
|
587 |
+
}
|
588 |
+
|
589 |
+
/**
|
590 |
+
* Add plugin feedback popup JS
|
591 |
+
*/
|
592 |
+
private function add_plugin_feedback_popup_js() {
|
593 |
+
$popup_id = '#' . $this->product->get_slug() . '_uninstall_feedback_popup';
|
594 |
+
$key = $this->product->get_key();
|
595 |
+
?>
|
596 |
+
<script type="text/javascript" id="ti-deactivate-js">
|
597 |
+
(function ($) {
|
598 |
+
$(document).ready(function () {
|
599 |
+
var targetElement = 'tr[data-plugin^="<?php echo $this->product->get_slug(); ?>/"] span.deactivate a';
|
600 |
+
var redirectUrl = $(targetElement).attr('href');
|
601 |
+
if ($('.ti-feedback-overlay').length === 0) {
|
602 |
+
$('body').prepend('<div class="ti-feedback-overlay"></div>');
|
603 |
+
}
|
604 |
+
$('<?php echo esc_attr( $popup_id ); ?> ').appendTo($(targetElement).parent());
|
605 |
+
|
606 |
+
$(targetElement).on('click', function (e) {
|
607 |
+
e.preventDefault();
|
608 |
+
$('<?php echo esc_attr( $popup_id ); ?> ').addClass('active');
|
609 |
+
$('body').addClass('ti-feedback-open');
|
610 |
+
$('.ti-feedback-overlay').on('click', function () {
|
611 |
+
$('<?php echo esc_attr( $popup_id ); ?> ').removeClass('active');
|
612 |
+
$('body').removeClass('ti-feedback-open');
|
613 |
+
});
|
614 |
+
});
|
615 |
+
|
616 |
+
$('<?php echo esc_attr( $popup_id ); ?> .info-disclosure-link').on('click', function (e) {
|
617 |
+
e.preventDefault();
|
618 |
+
$(this).parent().find('.info-disclosure-content').toggleClass('active');
|
619 |
+
});
|
620 |
+
|
621 |
+
$('<?php echo esc_attr( $popup_id ); ?> input[type="radio"]').on('change', function () {
|
622 |
+
var radio = $(this);
|
623 |
+
if (radio.parent().find('textarea').length > 0 &&
|
624 |
+
radio.parent().find('textarea').val().length === 0) {
|
625 |
+
$('<?php echo esc_attr( $popup_id ); ?> #<?php echo $key; ?>ti-deactivate-yes').attr('disabled', 'disabled');
|
626 |
+
radio.parent().find('textarea').on('keyup', function (e) {
|
627 |
+
if ($(this).val().length === 0) {
|
628 |
+
$('<?php echo esc_attr( $popup_id ); ?> #<?php echo $key; ?>ti-deactivate-yes').attr('disabled', 'disabled');
|
629 |
+
} else {
|
630 |
+
$('<?php echo esc_attr( $popup_id ); ?> #<?php echo $key; ?>ti-deactivate-yes').removeAttr('disabled');
|
631 |
+
}
|
632 |
+
});
|
633 |
} else {
|
634 |
+
$('<?php echo esc_attr( $popup_id ); ?> #<?php echo $key; ?>ti-deactivate-yes').removeAttr('disabled');
|
|
|
635 |
}
|
636 |
});
|
637 |
|
638 |
+
$('<?php echo esc_attr( $popup_id ); ?> #<?php echo $key; ?>ti-deactivate-no').on('click', function (e) {
|
639 |
+
e.preventDefault();
|
640 |
+
e.stopPropagation();
|
641 |
+
$(targetElement).unbind('click');
|
642 |
+
$('body').removeClass('ti-feedback-open');
|
643 |
+
$('<?php echo esc_attr( $popup_id ); ?>').remove();
|
644 |
+
if (redirectUrl !== '') {
|
645 |
+
location.href = redirectUrl;
|
646 |
+
}
|
647 |
});
|
648 |
|
649 |
+
$('<?php echo esc_attr( $popup_id ); ?> #<?php echo $key; ?>ti-deactivate-yes').on('click', function (e) {
|
650 |
+
e.preventDefault();
|
651 |
+
e.stopPropagation();
|
652 |
+
$(targetElement).unbind('click');
|
653 |
+
var selectedOption = $(
|
654 |
+
'<?php echo esc_attr( $popup_id ); ?> input[name="ti-deactivate-option"]:checked');
|
655 |
+
var data = {
|
656 |
+
'action': '<?php echo esc_attr( $key ) . '_uninstall_feedback'; ?>',
|
657 |
+
'nonce': '<?php echo wp_create_nonce( (string) __CLASS__ ); ?>',
|
658 |
+
'id': selectedOption.parent().attr('ti-option-id'),
|
659 |
+
'msg': selectedOption.parent().find('textarea').val(),
|
660 |
+
'type': 'plugin',
|
661 |
+
'key': '<?php echo esc_attr( $key ); ?>'
|
662 |
+
};
|
663 |
+
$.ajax({
|
664 |
+
type: 'POST',
|
665 |
+
url: ajaxurl,
|
666 |
+
data: data,
|
667 |
+
complete() {
|
668 |
+
$('body').removeClass('ti-feedback-open');
|
669 |
+
$('<?php echo esc_attr( $popup_id ); ?>').remove();
|
670 |
+
if (redirectUrl !== '') {
|
671 |
+
location.href = redirectUrl;
|
672 |
+
}
|
673 |
+
},
|
674 |
+
beforeSend() {
|
675 |
+
$('<?php echo esc_attr( $popup_id ); ?>').addClass('sending-feedback');
|
676 |
+
$('<?php echo esc_attr( $popup_id ); ?> .popup--footer').remove();
|
677 |
+
$('<?php echo esc_attr( $popup_id ); ?> .popup--body').html('<i class="dashicons dashicons-update-alt"></i>');
|
678 |
}
|
679 |
+
});
|
680 |
+
});
|
681 |
});
|
682 |
})(jQuery);
|
683 |
+
|
684 |
</script>
|
685 |
<?php
|
|
|
686 |
do_action( $this->product->get_key() . '_uninstall_feedback_after_js' );
|
687 |
}
|
688 |
|
689 |
/**
|
690 |
+
* Get the disclosure labels markup.
|
691 |
*
|
692 |
+
* @return string
|
|
|
693 |
*/
|
694 |
+
private function get_disclosure_labels() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
695 |
$disclosure_new_labels = apply_filters( $this->product->get_slug() . '_themeisle_sdk_disclosure_content_labels', [], $this->product );
|
696 |
$disclosure_labels = array_merge(
|
697 |
[
|
698 |
'title' => 'Below is a detailed view of all data that ThemeIsle will receive if you fill in this survey. No domain name, email address or IP addresses are transmited after you submit the survey.',
|
699 |
'items' => [
|
700 |
sprintf( '%s %s version %s %s %s %s', '<strong>', ucwords( $this->product->get_type() ), '</strong>', '<code>', $this->product->get_version(), '</code>' ),
|
701 |
+
sprintf( '%s Uninstall reason %s %s Selected reason from the above survey %s ', '<strong>', '</strong>', '<i>', '</i>' ),
|
702 |
],
|
703 |
],
|
704 |
$disclosure_new_labels
|
705 |
);
|
706 |
|
707 |
+
$info_disclosure_content = '<div class="info-disclosure-content"><p>' . wp_kses_post( $disclosure_labels['title'] ) . '</p><ul>';
|
|
|
708 |
foreach ( $disclosure_labels['items'] as $disclosure_item ) {
|
709 |
$info_disclosure_content .= sprintf( '<li>%s</li>', wp_kses_post( $disclosure_item ) );
|
710 |
}
|
711 |
$info_disclosure_content .= '</ul></div>';
|
712 |
|
713 |
+
return $info_disclosure_content;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
714 |
}
|
715 |
|
716 |
/**
|
836 |
* @return Uninstall_Feedback Current module instance.
|
837 |
*/
|
838 |
public function load( $product ) {
|
839 |
+
|
840 |
+
if ( apply_filters( $product->get_key() . '_hide_uninstall_feedback', false ) ) {
|
841 |
+
return;
|
842 |
+
}
|
843 |
+
|
844 |
$this->product = $product;
|
845 |
add_action( 'admin_head', array( $this, 'load_resources' ) );
|
846 |
add_action( 'wp_ajax_' . $this->product->get_key() . '_uninstall_feedback', array( $this, 'post_deactivate' ) );
|
vendor/codeinwp/themeisle-sdk/src/Product.php
CHANGED
@@ -114,7 +114,7 @@ class Product {
|
|
114 |
*/
|
115 |
public function __construct( $basefile ) {
|
116 |
if ( ! empty( $basefile ) ) {
|
117 |
-
if (
|
118 |
$this->basefile = $basefile;
|
119 |
$this->setup_from_path();
|
120 |
$this->setup_from_fileheaders();
|
@@ -200,6 +200,7 @@ class Product {
|
|
200 |
public function get_key() {
|
201 |
return $this->key;
|
202 |
}
|
|
|
203 |
/**
|
204 |
* Check if the product is either theme or plugin.
|
205 |
*
|
@@ -342,6 +343,11 @@ class Product {
|
|
342 |
* @return string The store url.
|
343 |
*/
|
344 |
public function get_store_url() {
|
|
|
|
|
|
|
|
|
|
|
345 |
return $this->store_url;
|
346 |
}
|
347 |
|
@@ -354,6 +360,21 @@ class Product {
|
|
354 |
return $this->basefile;
|
355 |
}
|
356 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
357 |
/**
|
358 |
* Returns product filename.
|
359 |
*
|
@@ -362,6 +383,7 @@ class Product {
|
|
362 |
public function get_file() {
|
363 |
return $this->file;
|
364 |
}
|
|
|
365 |
/**
|
366 |
* Returns the pro slug, if available.
|
367 |
*
|
@@ -380,4 +402,17 @@ class Product {
|
|
380 |
return $this->install;
|
381 |
}
|
382 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
}
|
114 |
*/
|
115 |
public function __construct( $basefile ) {
|
116 |
if ( ! empty( $basefile ) ) {
|
117 |
+
if ( is_file( $basefile ) ) {
|
118 |
$this->basefile = $basefile;
|
119 |
$this->setup_from_path();
|
120 |
$this->setup_from_fileheaders();
|
200 |
public function get_key() {
|
201 |
return $this->key;
|
202 |
}
|
203 |
+
|
204 |
/**
|
205 |
* Check if the product is either theme or plugin.
|
206 |
*
|
343 |
* @return string The store url.
|
344 |
*/
|
345 |
public function get_store_url() {
|
346 |
+
|
347 |
+
if ( strpos( $this->store_url, '/themeisle.com' ) !== false ) {
|
348 |
+
return 'https://store.themeisle.com/';
|
349 |
+
}
|
350 |
+
|
351 |
return $this->store_url;
|
352 |
}
|
353 |
|
360 |
return $this->basefile;
|
361 |
}
|
362 |
|
363 |
+
/**
|
364 |
+
* Get changelog url.
|
365 |
+
*
|
366 |
+
* @return string Changelog url.
|
367 |
+
*/
|
368 |
+
public function get_changelog() {
|
369 |
+
return add_query_arg(
|
370 |
+
[
|
371 |
+
'name' => rawurlencode( $this->get_name() ),
|
372 |
+
'edd_action' => 'view_changelog',
|
373 |
+
],
|
374 |
+
$this->get_store_url()
|
375 |
+
);
|
376 |
+
}
|
377 |
+
|
378 |
/**
|
379 |
* Returns product filename.
|
380 |
*
|
383 |
public function get_file() {
|
384 |
return $this->file;
|
385 |
}
|
386 |
+
|
387 |
/**
|
388 |
* Returns the pro slug, if available.
|
389 |
*
|
402 |
return $this->install;
|
403 |
}
|
404 |
|
405 |
+
/**
|
406 |
+
* Returns the URL of the product base file.
|
407 |
+
*
|
408 |
+
* @param string $path The path to the file.
|
409 |
+
*
|
410 |
+
* @return string The URL of the product base file.
|
411 |
+
*/
|
412 |
+
public function get_base_url( $path = '/' ) {
|
413 |
+
if ( $this->type ) {
|
414 |
+
return plugins_url( $path, $this->basefile );
|
415 |
+
}
|
416 |
+
}
|
417 |
+
|
418 |
}
|
vendor/codeinwp/themeisle-sdk/start.php
CHANGED
@@ -31,12 +31,13 @@ $files_to_load = [
|
|
31 |
$path . '/src/' . 'Modules/Logger.php',
|
32 |
$path . '/src/' . 'Modules/Translate.php',
|
33 |
$path . '/src/' . 'Modules/Review.php',
|
|
|
34 |
];
|
35 |
|
36 |
$files_to_load = array_merge( $files_to_load, apply_filters( 'themeisle_sdk_required_files', [] ) );
|
37 |
|
38 |
foreach ( $files_to_load as $file ) {
|
39 |
-
if (
|
40 |
require_once $file;
|
41 |
}
|
42 |
}
|
31 |
$path . '/src/' . 'Modules/Logger.php',
|
32 |
$path . '/src/' . 'Modules/Translate.php',
|
33 |
$path . '/src/' . 'Modules/Review.php',
|
34 |
+
$path . '/src/' . 'Modules/Recommendation.php',
|
35 |
];
|
36 |
|
37 |
$files_to_load = array_merge( $files_to_load, apply_filters( 'themeisle_sdk_required_files', [] ) );
|
38 |
|
39 |
foreach ( $files_to_load as $file ) {
|
40 |
+
if ( is_file( $file ) ) {
|
41 |
require_once $file;
|
42 |
}
|
43 |
}
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit47db44a383439f35ebbd40e77d2e5724
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
@@ -48,19 +48,19 @@ class ComposerAutoloaderInit47db44a383439f35ebbd40e77d2e5724
|
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
-
$includeFiles = Composer\Autoload\
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
-
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
-
function
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit86d4bbcb0c93c7a69621c7a526c43e6f
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit86d4bbcb0c93c7a69621c7a526c43e6f', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit86d4bbcb0c93c7a69621c7a526c43e6f', 'loadClassLoader'));
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit86d4bbcb0c93c7a69621c7a526c43e6f::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit86d4bbcb0c93c7a69621c7a526c43e6f::$files;
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
+
composerRequire86d4bbcb0c93c7a69621c7a526c43e6f($fileIdentifier, $file);
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
+
function composerRequire86d4bbcb0c93c7a69621c7a526c43e6f($fileIdentifier, $file)
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'9fef4034ed73e26a337d9856ea126f7f' => __DIR__ . '/..' . '/codeinwp/themeisle-sdk/load.php',
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit86d4bbcb0c93c7a69621c7a526c43e6f
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'9fef4034ed73e26a337d9856ea126f7f' => __DIR__ . '/..' . '/codeinwp/themeisle-sdk/load.php',
|
vendor/composer/installed.json
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
[
|
2 |
{
|
3 |
"name": "codeinwp/themeisle-sdk",
|
4 |
-
"version": "3.
|
5 |
-
"version_normalized": "3.
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/Codeinwp/themeisle-sdk.git",
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require-dev": {
|
@@ -19,7 +19,7 @@
|
|
19 |
"squizlabs/php_codesniffer": "^3.1",
|
20 |
"wp-coding-standards/wpcs": "^1.0.0"
|
21 |
},
|
22 |
-
"time": "2019-
|
23 |
"type": "library",
|
24 |
"installation-source": "dist",
|
25 |
"notification-url": "https://packagist.org/downloads/",
|
1 |
[
|
2 |
{
|
3 |
"name": "codeinwp/themeisle-sdk",
|
4 |
+
"version": "3.1.6",
|
5 |
+
"version_normalized": "3.1.6.0",
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/Codeinwp/themeisle-sdk.git",
|
9 |
+
"reference": "6d2661b91b8ebaed6dea99a29832f33225796c5a"
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/6d2661b91b8ebaed6dea99a29832f33225796c5a",
|
14 |
+
"reference": "6d2661b91b8ebaed6dea99a29832f33225796c5a",
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require-dev": {
|
19 |
"squizlabs/php_codesniffer": "^3.1",
|
20 |
"wp-coding-standards/wpcs": "^1.0.0"
|
21 |
},
|
22 |
+
"time": "2019-09-24T12:35:52+00:00",
|
23 |
"type": "library",
|
24 |
"installation-source": "dist",
|
25 |
"notification-url": "https://packagist.org/downloads/",
|