diff --git a/build/js/404.min.js b/build/js/404.min.js index bafa722..94eb9cb 100755 --- a/build/js/404.min.js +++ b/build/js/404.min.js @@ -1,21 +1 @@ -// Based on plks code - -jQuery(document).ready(function() { - var tags = Array('robots', 'scifi', 'sci_fi', 'robot', 'electronics', 'code'); - var error404 = document.getElementsByClassName('error404')[0]; - jQuery.get('http://api.giphy.com/v1/gifs/random', { - 'api_key': 'dc6zaTOxFJmzC', - 'tag': tags[Math.floor(Math.random() * tags.length)] - }, function(data) { - error404.style.backgroundImage = 'url(' + data.data.image_original_url + ')'; - }); - - jQuery('.error404__back').click(function(e) { - //if it was the first page - if(history.length === 1){ - window.location = "http://synergia.pwr.wroc.pl"; - } else { - history.back(); - } }); -}); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyI0MDQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQmFzZWQgb24gcGxrcyBjb2RlXG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG4gICAgdmFyIHRhZ3MgPSBBcnJheSgncm9ib3RzJywgJ3NjaWZpJywgJ3NjaV9maScsICdyb2JvdCcsICdlbGVjdHJvbmljcycsICdjb2RlJyk7XG4gICAgdmFyIGVycm9yNDA0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZXJyb3I0MDQnKVswXTtcbiAgICBqUXVlcnkuZ2V0KCdodHRwOi8vYXBpLmdpcGh5LmNvbS92MS9naWZzL3JhbmRvbScsIHtcbiAgICAgICAgJ2FwaV9rZXknOiAnZGM2emFUT3hGSm16QycsXG4gICAgICAgICd0YWcnOiB0YWdzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRhZ3MubGVuZ3RoKV1cbiAgICB9LCBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgIGVycm9yNDA0LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICd1cmwoJyArIGRhdGEuZGF0YS5pbWFnZV9vcmlnaW5hbF91cmwgKyAnKSc7XG4gICAgfSk7XG5cbiAgICBqUXVlcnkoJy5lcnJvcjQwNF9fYmFjaycpLmNsaWNrKGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgLy9pZiBpdCB3YXMgdGhlIGZpcnN0IHBhZ2VcbiAgICAgICAgaWYoaGlzdG9yeS5sZW5ndGggPT09IDEpe1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gXCJodHRwOi8vc3luZXJnaWEucHdyLndyb2MucGxcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhpc3RvcnkuYmFjaygpO1xuICAgICAgICB9ICAgIH0pO1xufSk7Il0sImZpbGUiOiI0MDQubWluLmpzIn0= +jQuery(document).ready(function(){var r=Array("robots","scifi","sci_fi","robot","electronics","code"),o=document.getElementsByClassName("error404")[0];jQuery.get("http://api.giphy.com/v1/gifs/random",{api_key:"dc6zaTOxFJmzC",tag:r[Math.floor(Math.random()*r.length)]},function(r){o.style.backgroundImage="url("+r.data.image_original_url+")"}),jQuery(".error404__back").click(function(r){1===history.length?window.location="http://synergia.pwr.wroc.pl":history.back()})}); \ No newline at end of file diff --git a/build/js/blazy.min.js b/build/js/blazy.min.js index 0a5f7a7..3a0ba95 100755 --- a/build/js/blazy.min.js +++ b/build/js/blazy.min.js @@ -1,267 +1 @@ -/*! - hey, [be]Lazy.js - v1.5.4 - 2016.03.06 - A fast, small and dependency free lazy load script (https://github.com/dinbror/blazy) - (c) Bjoern Klinggaard - @bklinggaard - http://dinbror.dk/blazy -*/ -; -(function(root, blazy) { - if (typeof define === 'function' && define.amd) { - // AMD. Register bLazy as an anonymous module - define(blazy); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = blazy(); - } else { - // Browser globals. Register bLazy on window - root.Blazy = blazy(); - } -})(this, function() { - 'use strict'; - - //private vars - var source, viewport, isRetina; - - // constructor - return function Blazy(options) { - //IE7- fallback for missing querySelectorAll support - if (!document.querySelectorAll) { - var s = document.createStyleSheet(); - document.querySelectorAll = function(r, c, i, j, a) { - a = document.all, c = [], r = r.replace(/\[for\b/gi, '[htmlFor').split(','); - for (i = r.length; i--;) { - s.addRule(r[i], 'k:v'); - for (j = a.length; j--;) a[j].currentStyle.k && c.push(a[j]); - s.removeRule(0); - } - return c; - }; - } - - //options and helper vars - var scope = this; - var util = scope._util = {}; - util.elements = []; - util.destroyed = true; - scope.options = options || {}; - scope.options.error = scope.options.error || false; - scope.options.offset = scope.options.offset || 100; - scope.options.success = scope.options.success || false; - scope.options.selector = scope.options.selector || '.b-lazy'; - scope.options.separator = scope.options.separator || '|'; - scope.options.container = scope.options.container ? document.querySelectorAll(scope.options.container) : false; - scope.options.errorClass = scope.options.errorClass || 'b-error'; - scope.options.breakpoints = scope.options.breakpoints || false; - scope.options.loadInvisible = scope.options.loadInvisible || false; - scope.options.successClass = scope.options.successClass || 'b-loaded'; - scope.options.validateDelay = scope.options.validateDelay || 25; - scope.options.saveViewportOffsetDelay = scope.options.saveViewportOffsetDelay || 50; - scope.options.src = source = scope.options.src || 'data-src'; - isRetina = window.devicePixelRatio > 1; - viewport = {}; - viewport.top = 0 - scope.options.offset; - viewport.left = 0 - scope.options.offset; - - - /* public functions - ************************************/ - scope.revalidate = function() { - initialize(this); - }; - scope.load = function(elements, force) { - var opt = this.options; - if (elements.length === undefined) { - loadElement(elements, force, opt); - } else { - each(elements, function(element) { - loadElement(element, force, opt); - }); - } - }; - scope.destroy = function() { - var self = this; - var util = self._util; - if (self.options.container) { - each(self.options.container, function(object) { - unbindEvent(object, 'scroll', util.validateT); - }); - } - unbindEvent(window, 'scroll', util.validateT); - unbindEvent(window, 'resize', util.validateT); - unbindEvent(window, 'resize', util.saveViewportOffsetT); - util.count = 0; - util.elements.length = 0; - util.destroyed = true; - }; - - //throttle, ensures that we don't call the functions too often - util.validateT = throttle(function() { - validate(scope); - }, scope.options.validateDelay, scope); - util.saveViewportOffsetT = throttle(function() { - saveViewportOffset(scope.options.offset); - }, scope.options.saveViewportOffsetDelay, scope); - saveViewportOffset(scope.options.offset); - - //handle multi-served image src - each(scope.options.breakpoints, function(object) { - if (object.width >= window.screen.width) { - source = object.src; - return false; - } - }); - - // start lazy load - initialize(scope); - }; - - - /* Private helper functions - ************************************/ - function initialize(self) { - setTimeout(function() { - var util = self._util; - // First we create an array of elements to lazy load - util.elements = toArray(self.options.selector); - util.count = util.elements.length; - // Then we bind resize and scroll events if not already binded - if (util.destroyed) { - util.destroyed = false; - if (self.options.container) { - each(self.options.container, function(object) { - bindEvent(object, 'scroll', util.validateT); - }); - } - bindEvent(window, 'resize', util.saveViewportOffsetT); - bindEvent(window, 'resize', util.validateT); - bindEvent(window, 'scroll', util.validateT); - } - // And finally, we start to lazy load. - validate(self); - }, 1); // "dom ready" fix - } - - function validate(self) { - var util = self._util; - for (var i = 0; i < util.count; i++) { - var element = util.elements[i]; - if (elementInView(element) || hasClass(element, self.options.successClass)) { - self.load(element); - util.elements.splice(i, 1); - util.count--; - i--; - } - } - if (util.count === 0) { - self.destroy(); - } - } - - function elementInView(ele) { - var rect = ele.getBoundingClientRect(); - return ( - // Intersection - rect.right >= viewport.left && rect.bottom >= viewport.top && rect.left <= viewport.right && rect.top <= viewport.bottom - ); - } - - function loadElement(ele, force, options) { - // if element is visible, not loaded or forced - if (!hasClass(ele, options.successClass) && (force || options.loadInvisible || (ele.offsetWidth > 0 && ele.offsetHeight > 0))) { - var dataSrc = ele.getAttribute(source) || ele.getAttribute(options.src); // fallback to default 'data-src' - if (dataSrc) { - var dataSrcSplitted = dataSrc.split(options.separator); - var src = dataSrcSplitted[isRetina && dataSrcSplitted.length > 1 ? 1 : 0]; - var isImage = ele.nodeName.toLowerCase() === 'img'; - // Image or background image - if (isImage || ele.src === undefined) { - var img = new Image(); - img.onerror = function() { - if (options.error) options.error(ele, "invalid"); - addClass(ele, options.errorClass); - }; - img.onload = function() { - // Is element an image or should we add the src as a background image? - isImage ? ele.src = src : ele.style.backgroundImage = 'url("' + src + '")'; - itemLoaded(ele, options); - }; - img.src = src; //preload - // An item with src like iframe, unity, video etc - } else { - ele.src = src; - itemLoaded(ele, options); - } - } else { - if (options.error) options.error(ele, "missing"); - if (!hasClass(ele, options.errorClass)) addClass(ele, options.errorClass); - } - } - } - - function itemLoaded(ele, options) { - addClass(ele, options.successClass); - if (options.success) options.success(ele); - // cleanup markup, remove data source attributes - each(options.breakpoints, function(object) { - ele.removeAttribute(object.src); - }); - ele.removeAttribute(options.src); - } - - function hasClass(ele, className) { - return (' ' + ele.className + ' ').indexOf(' ' + className + ' ') !== -1; - } - - function addClass(ele, className) { - ele.className = ele.className + ' ' + className; - } - - function toArray(selector) { - var array = []; - var nodelist = document.querySelectorAll(selector); - for (var i = nodelist.length; i--; array.unshift(nodelist[i])) {} - return array; - } - - function saveViewportOffset(offset) { - viewport.bottom = (window.innerHeight || document.documentElement.clientHeight) + offset; - viewport.right = (window.innerWidth || document.documentElement.clientWidth) + offset; - } - - function bindEvent(ele, type, fn) { - if (ele.attachEvent) { - ele.attachEvent && ele.attachEvent('on' + type, fn); - } else { - ele.addEventListener(type, fn, false); - } - } - - function unbindEvent(ele, type, fn) { - if (ele.detachEvent) { - ele.detachEvent && ele.detachEvent('on' + type, fn); - } else { - ele.removeEventListener(type, fn, false); - } - } - - function each(object, fn) { - if (object && fn) { - var l = object.length; - for (var i = 0; i < l && fn(object[i], i) !== false; i++) {} - } - } - - function throttle(fn, minDelay, scope) { - var lastCall = 0; - return function() { - var now = +new Date(); - if (now - lastCall < minDelay) { - return; - } - lastCall = now; - fn.apply(scope, arguments); - }; - } -}); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyJibGF6eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAgaGV5LCBbYmVdTGF6eS5qcyAtIHYxLjUuNCAtIDIwMTYuMDMuMDZcbiAgQSBmYXN0LCBzbWFsbCBhbmQgZGVwZW5kZW5jeSBmcmVlIGxhenkgbG9hZCBzY3JpcHQgKGh0dHBzOi8vZ2l0aHViLmNvbS9kaW5icm9yL2JsYXp5KVxuICAoYykgQmpvZXJuIEtsaW5nZ2FhcmQgLSBAYmtsaW5nZ2FhcmQgLSBodHRwOi8vZGluYnJvci5kay9ibGF6eVxuKi9cbjtcbihmdW5jdGlvbihyb290LCBibGF6eSkge1xuICAgIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICAgICAgLy8gQU1ELiBSZWdpc3RlciBiTGF6eSBhcyBhbiBhbm9ueW1vdXMgbW9kdWxlXG4gICAgICAgIGRlZmluZShibGF6eSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gTm9kZS4gRG9lcyBub3Qgd29yayB3aXRoIHN0cmljdCBDb21tb25KUywgYnV0XG4gICAgICAgIC8vIG9ubHkgQ29tbW9uSlMtbGlrZSBlbnZpcm9ubWVudHMgdGhhdCBzdXBwb3J0IG1vZHVsZS5leHBvcnRzLFxuICAgICAgICAvLyBsaWtlIE5vZGUuXG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gYmxhenkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBCcm93c2VyIGdsb2JhbHMuIFJlZ2lzdGVyIGJMYXp5IG9uIHdpbmRvd1xuICAgICAgICByb290LkJsYXp5ID0gYmxhenkoKTtcbiAgICB9XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvL3ByaXZhdGUgdmFyc1xuICAgIHZhciBzb3VyY2UsIHZpZXdwb3J0LCBpc1JldGluYTtcblxuICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgcmV0dXJuIGZ1bmN0aW9uIEJsYXp5KG9wdGlvbnMpIHtcbiAgICAgICAgLy9JRTctIGZhbGxiYWNrIGZvciBtaXNzaW5nIHF1ZXJ5U2VsZWN0b3JBbGwgc3VwcG9ydFxuICAgICAgICBpZiAoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwpIHtcbiAgICAgICAgICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlU3R5bGVTaGVldCgpO1xuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCA9IGZ1bmN0aW9uKHIsIGMsIGksIGosIGEpIHtcbiAgICAgICAgICAgICAgICBhID0gZG9jdW1lbnQuYWxsLCBjID0gW10sIHIgPSByLnJlcGxhY2UoL1xcW2ZvclxcYi9naSwgJ1todG1sRm9yJykuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSByLmxlbmd0aDsgaS0tOykge1xuICAgICAgICAgICAgICAgICAgICBzLmFkZFJ1bGUocltpXSwgJ2s6dicpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSBhLmxlbmd0aDsgai0tOykgYVtqXS5jdXJyZW50U3R5bGUuayAmJiBjLnB1c2goYVtqXSk7XG4gICAgICAgICAgICAgICAgICAgIHMucmVtb3ZlUnVsZSgwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy9vcHRpb25zIGFuZCBoZWxwZXIgdmFyc1xuICAgICAgICB2YXIgc2NvcGUgPSB0aGlzO1xuICAgICAgICB2YXIgdXRpbCA9IHNjb3BlLl91dGlsID0ge307XG4gICAgICAgIHV0aWwuZWxlbWVudHMgPSBbXTtcbiAgICAgICAgdXRpbC5kZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICBzY29wZS5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgc2NvcGUub3B0aW9ucy5lcnJvciA9IHNjb3BlLm9wdGlvbnMuZXJyb3IgfHwgZmFsc2U7XG4gICAgICAgIHNjb3BlLm9wdGlvbnMub2Zmc2V0ID0gc2NvcGUub3B0aW9ucy5vZmZzZXQgfHwgMTAwO1xuICAgICAgICBzY29wZS5vcHRpb25zLnN1Y2Nlc3MgPSBzY29wZS5vcHRpb25zLnN1Y2Nlc3MgfHwgZmFsc2U7XG4gICAgICAgIHNjb3BlLm9wdGlvbnMuc2VsZWN0b3IgPSBzY29wZS5vcHRpb25zLnNlbGVjdG9yIHx8ICcuYi1sYXp5JztcbiAgICAgICAgc2NvcGUub3B0aW9ucy5zZXBhcmF0b3IgPSBzY29wZS5vcHRpb25zLnNlcGFyYXRvciB8fCAnfCc7XG4gICAgICAgIHNjb3BlLm9wdGlvbnMuY29udGFpbmVyID0gc2NvcGUub3B0aW9ucy5jb250YWluZXIgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNjb3BlLm9wdGlvbnMuY29udGFpbmVyKSA6IGZhbHNlO1xuICAgICAgICBzY29wZS5vcHRpb25zLmVycm9yQ2xhc3MgPSBzY29wZS5vcHRpb25zLmVycm9yQ2xhc3MgfHwgJ2ItZXJyb3InO1xuICAgICAgICBzY29wZS5vcHRpb25zLmJyZWFrcG9pbnRzID0gc2NvcGUub3B0aW9ucy5icmVha3BvaW50cyB8fCBmYWxzZTtcbiAgICAgICAgc2NvcGUub3B0aW9ucy5sb2FkSW52aXNpYmxlID0gc2NvcGUub3B0aW9ucy5sb2FkSW52aXNpYmxlIHx8IGZhbHNlO1xuICAgICAgICBzY29wZS5vcHRpb25zLnN1Y2Nlc3NDbGFzcyA9IHNjb3BlLm9wdGlvbnMuc3VjY2Vzc0NsYXNzIHx8ICdiLWxvYWRlZCc7XG4gICAgICAgIHNjb3BlLm9wdGlvbnMudmFsaWRhdGVEZWxheSA9IHNjb3BlLm9wdGlvbnMudmFsaWRhdGVEZWxheSB8fCAyNTtcbiAgICAgICAgc2NvcGUub3B0aW9ucy5zYXZlVmlld3BvcnRPZmZzZXREZWxheSA9IHNjb3BlLm9wdGlvbnMuc2F2ZVZpZXdwb3J0T2Zmc2V0RGVsYXkgfHwgNTA7XG4gICAgICAgIHNjb3BlLm9wdGlvbnMuc3JjID0gc291cmNlID0gc2NvcGUub3B0aW9ucy5zcmMgfHwgJ2RhdGEtc3JjJztcbiAgICAgICAgaXNSZXRpbmEgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA+IDE7XG4gICAgICAgIHZpZXdwb3J0ID0ge307XG4gICAgICAgIHZpZXdwb3J0LnRvcCA9IDAgLSBzY29wZS5vcHRpb25zLm9mZnNldDtcbiAgICAgICAgdmlld3BvcnQubGVmdCA9IDAgLSBzY29wZS5vcHRpb25zLm9mZnNldDtcblxuXG4gICAgICAgIC8qIHB1YmxpYyBmdW5jdGlvbnNcbiAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgc2NvcGUucmV2YWxpZGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaW5pdGlhbGl6ZSh0aGlzKTtcbiAgICAgICAgfTtcbiAgICAgICAgc2NvcGUubG9hZCA9IGZ1bmN0aW9uKGVsZW1lbnRzLCBmb3JjZSkge1xuICAgICAgICAgICAgdmFyIG9wdCA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIGlmIChlbGVtZW50cy5sZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGxvYWRFbGVtZW50KGVsZW1lbnRzLCBmb3JjZSwgb3B0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWFjaChlbGVtZW50cywgZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBsb2FkRWxlbWVudChlbGVtZW50LCBmb3JjZSwgb3B0KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgc2NvcGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgICAgICAgdmFyIHV0aWwgPSBzZWxmLl91dGlsO1xuICAgICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICBlYWNoKHNlbGYub3B0aW9ucy5jb250YWluZXIsIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICB1bmJpbmRFdmVudChvYmplY3QsICdzY3JvbGwnLCB1dGlsLnZhbGlkYXRlVCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1bmJpbmRFdmVudCh3aW5kb3csICdzY3JvbGwnLCB1dGlsLnZhbGlkYXRlVCk7XG4gICAgICAgICAgICB1bmJpbmRFdmVudCh3aW5kb3csICdyZXNpemUnLCB1dGlsLnZhbGlkYXRlVCk7XG4gICAgICAgICAgICB1bmJpbmRFdmVudCh3aW5kb3csICdyZXNpemUnLCB1dGlsLnNhdmVWaWV3cG9ydE9mZnNldFQpO1xuICAgICAgICAgICAgdXRpbC5jb3VudCA9IDA7XG4gICAgICAgICAgICB1dGlsLmVsZW1lbnRzLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICB1dGlsLmRlc3Ryb3llZCA9IHRydWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy90aHJvdHRsZSwgZW5zdXJlcyB0aGF0IHdlIGRvbid0IGNhbGwgdGhlIGZ1bmN0aW9ucyB0b28gb2Z0ZW5cbiAgICAgICAgdXRpbC52YWxpZGF0ZVQgPSB0aHJvdHRsZShmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlKHNjb3BlKTtcbiAgICAgICAgfSwgc2NvcGUub3B0aW9ucy52YWxpZGF0ZURlbGF5LCBzY29wZSk7XG4gICAgICAgIHV0aWwuc2F2ZVZpZXdwb3J0T2Zmc2V0VCA9IHRocm90dGxlKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgc2F2ZVZpZXdwb3J0T2Zmc2V0KHNjb3BlLm9wdGlvbnMub2Zmc2V0KTtcbiAgICAgICAgfSwgc2NvcGUub3B0aW9ucy5zYXZlVmlld3BvcnRPZmZzZXREZWxheSwgc2NvcGUpO1xuICAgICAgICBzYXZlVmlld3BvcnRPZmZzZXQoc2NvcGUub3B0aW9ucy5vZmZzZXQpO1xuXG4gICAgICAgIC8vaGFuZGxlIG11bHRpLXNlcnZlZCBpbWFnZSBzcmNcbiAgICAgICAgZWFjaChzY29wZS5vcHRpb25zLmJyZWFrcG9pbnRzLCBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChvYmplY3Qud2lkdGggPj0gd2luZG93LnNjcmVlbi53aWR0aCkge1xuICAgICAgICAgICAgICAgIHNvdXJjZSA9IG9iamVjdC5zcmM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBzdGFydCBsYXp5IGxvYWRcbiAgICAgICAgaW5pdGlhbGl6ZShzY29wZSk7XG4gICAgfTtcblxuXG4gICAgLyogUHJpdmF0ZSBoZWxwZXIgZnVuY3Rpb25zXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICBmdW5jdGlvbiBpbml0aWFsaXplKHNlbGYpIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB1dGlsID0gc2VsZi5fdXRpbDtcbiAgICAgICAgICAgIC8vIEZpcnN0IHdlIGNyZWF0ZSBhbiBhcnJheSBvZiBlbGVtZW50cyB0byBsYXp5IGxvYWRcbiAgICAgICAgICAgIHV0aWwuZWxlbWVudHMgPSB0b0FycmF5KHNlbGYub3B0aW9ucy5zZWxlY3Rvcik7XG4gICAgICAgICAgICB1dGlsLmNvdW50ID0gdXRpbC5lbGVtZW50cy5sZW5ndGg7XG4gICAgICAgICAgICAvLyBUaGVuIHdlIGJpbmQgcmVzaXplIGFuZCBzY3JvbGwgZXZlbnRzIGlmIG5vdCBhbHJlYWR5IGJpbmRlZFxuICAgICAgICAgICAgaWYgKHV0aWwuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgdXRpbC5kZXN0cm95ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5vcHRpb25zLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICBlYWNoKHNlbGYub3B0aW9ucy5jb250YWluZXIsIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmluZEV2ZW50KG9iamVjdCwgJ3Njcm9sbCcsIHV0aWwudmFsaWRhdGVUKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJpbmRFdmVudCh3aW5kb3csICdyZXNpemUnLCB1dGlsLnNhdmVWaWV3cG9ydE9mZnNldFQpO1xuICAgICAgICAgICAgICAgIGJpbmRFdmVudCh3aW5kb3csICdyZXNpemUnLCB1dGlsLnZhbGlkYXRlVCk7XG4gICAgICAgICAgICAgICAgYmluZEV2ZW50KHdpbmRvdywgJ3Njcm9sbCcsIHV0aWwudmFsaWRhdGVUKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFuZCBmaW5hbGx5LCB3ZSBzdGFydCB0byBsYXp5IGxvYWQuXG4gICAgICAgICAgICB2YWxpZGF0ZShzZWxmKTtcbiAgICAgICAgfSwgMSk7IC8vIFwiZG9tIHJlYWR5XCIgZml4XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGUoc2VsZikge1xuICAgICAgICB2YXIgdXRpbCA9IHNlbGYuX3V0aWw7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdXRpbC5jb3VudDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IHV0aWwuZWxlbWVudHNbaV07XG4gICAgICAgICAgICBpZiAoZWxlbWVudEluVmlldyhlbGVtZW50KSB8fCBoYXNDbGFzcyhlbGVtZW50LCBzZWxmLm9wdGlvbnMuc3VjY2Vzc0NsYXNzKSkge1xuICAgICAgICAgICAgICAgIHNlbGYubG9hZChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB1dGlsLmVsZW1lbnRzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICB1dGlsLmNvdW50LS07XG4gICAgICAgICAgICAgICAgaS0tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh1dGlsLmNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICBzZWxmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVsZW1lbnRJblZpZXcoZWxlKSB7XG4gICAgICAgIHZhciByZWN0ID0gZWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgLy8gSW50ZXJzZWN0aW9uXG4gICAgICAgICAgICByZWN0LnJpZ2h0ID49IHZpZXdwb3J0LmxlZnQgJiYgcmVjdC5ib3R0b20gPj0gdmlld3BvcnQudG9wICYmIHJlY3QubGVmdCA8PSB2aWV3cG9ydC5yaWdodCAmJiByZWN0LnRvcCA8PSB2aWV3cG9ydC5ib3R0b21cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2FkRWxlbWVudChlbGUsIGZvcmNlLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIGlmIGVsZW1lbnQgaXMgdmlzaWJsZSwgbm90IGxvYWRlZCBvciBmb3JjZWRcbiAgICAgICAgaWYgKCFoYXNDbGFzcyhlbGUsIG9wdGlvbnMuc3VjY2Vzc0NsYXNzKSAmJiAoZm9yY2UgfHwgb3B0aW9ucy5sb2FkSW52aXNpYmxlIHx8IChlbGUub2Zmc2V0V2lkdGggPiAwICYmIGVsZS5vZmZzZXRIZWlnaHQgPiAwKSkpIHtcbiAgICAgICAgICAgIHZhciBkYXRhU3JjID0gZWxlLmdldEF0dHJpYnV0ZShzb3VyY2UpIHx8IGVsZS5nZXRBdHRyaWJ1dGUob3B0aW9ucy5zcmMpOyAvLyBmYWxsYmFjayB0byBkZWZhdWx0ICdkYXRhLXNyYydcbiAgICAgICAgICAgIGlmIChkYXRhU3JjKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGFTcmNTcGxpdHRlZCA9IGRhdGFTcmMuc3BsaXQob3B0aW9ucy5zZXBhcmF0b3IpO1xuICAgICAgICAgICAgICAgIHZhciBzcmMgPSBkYXRhU3JjU3BsaXR0ZWRbaXNSZXRpbmEgJiYgZGF0YVNyY1NwbGl0dGVkLmxlbmd0aCA+IDEgPyAxIDogMF07XG4gICAgICAgICAgICAgICAgdmFyIGlzSW1hZ2UgPSBlbGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2ltZyc7XG4gICAgICAgICAgICAgICAgLy8gSW1hZ2Ugb3IgYmFja2dyb3VuZCBpbWFnZVxuICAgICAgICAgICAgICAgIGlmIChpc0ltYWdlIHx8IGVsZS5zcmMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5lcnJvcikgb3B0aW9ucy5lcnJvcihlbGUsIFwiaW52YWxpZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKGVsZSwgb3B0aW9ucy5lcnJvckNsYXNzKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSXMgZWxlbWVudCBhbiBpbWFnZSBvciBzaG91bGQgd2UgYWRkIHRoZSBzcmMgYXMgYSBiYWNrZ3JvdW5kIGltYWdlP1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJbWFnZSA/IGVsZS5zcmMgPSBzcmMgOiBlbGUuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gJ3VybChcIicgKyBzcmMgKyAnXCIpJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Mb2FkZWQoZWxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaW1nLnNyYyA9IHNyYzsgLy9wcmVsb2FkXG4gICAgICAgICAgICAgICAgICAgIC8vIEFuIGl0ZW0gd2l0aCBzcmMgbGlrZSBpZnJhbWUsIHVuaXR5LCB2aWRlbyBldGNcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbGUuc3JjID0gc3JjO1xuICAgICAgICAgICAgICAgICAgICBpdGVtTG9hZGVkKGVsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5lcnJvcikgb3B0aW9ucy5lcnJvcihlbGUsIFwibWlzc2luZ1wiKTtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc0NsYXNzKGVsZSwgb3B0aW9ucy5lcnJvckNsYXNzKSkgYWRkQ2xhc3MoZWxlLCBvcHRpb25zLmVycm9yQ2xhc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXRlbUxvYWRlZChlbGUsIG9wdGlvbnMpIHtcbiAgICAgICAgYWRkQ2xhc3MoZWxlLCBvcHRpb25zLnN1Y2Nlc3NDbGFzcyk7XG4gICAgICAgIGlmIChvcHRpb25zLnN1Y2Nlc3MpIG9wdGlvbnMuc3VjY2VzcyhlbGUpO1xuICAgICAgICAvLyBjbGVhbnVwIG1hcmt1cCwgcmVtb3ZlIGRhdGEgc291cmNlIGF0dHJpYnV0ZXNcbiAgICAgICAgZWFjaChvcHRpb25zLmJyZWFrcG9pbnRzLCBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICAgIGVsZS5yZW1vdmVBdHRyaWJ1dGUob2JqZWN0LnNyYyk7XG4gICAgICAgIH0pO1xuICAgICAgICBlbGUucmVtb3ZlQXR0cmlidXRlKG9wdGlvbnMuc3JjKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYXNDbGFzcyhlbGUsIGNsYXNzTmFtZSkge1xuICAgICAgICByZXR1cm4gKCcgJyArIGVsZS5jbGFzc05hbWUgKyAnICcpLmluZGV4T2YoJyAnICsgY2xhc3NOYW1lICsgJyAnKSAhPT0gLTE7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkQ2xhc3MoZWxlLCBjbGFzc05hbWUpIHtcbiAgICAgICAgZWxlLmNsYXNzTmFtZSA9IGVsZS5jbGFzc05hbWUgKyAnICcgKyBjbGFzc05hbWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9BcnJheShzZWxlY3Rvcikge1xuICAgICAgICB2YXIgYXJyYXkgPSBbXTtcbiAgICAgICAgdmFyIG5vZGVsaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgICAgIGZvciAodmFyIGkgPSBub2RlbGlzdC5sZW5ndGg7IGktLTsgYXJyYXkudW5zaGlmdChub2RlbGlzdFtpXSkpIHt9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzYXZlVmlld3BvcnRPZmZzZXQob2Zmc2V0KSB7XG4gICAgICAgIHZpZXdwb3J0LmJvdHRvbSA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgKyBvZmZzZXQ7XG4gICAgICAgIHZpZXdwb3J0LnJpZ2h0ID0gKHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkgKyBvZmZzZXQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYmluZEV2ZW50KGVsZSwgdHlwZSwgZm4pIHtcbiAgICAgICAgaWYgKGVsZS5hdHRhY2hFdmVudCkge1xuICAgICAgICAgICAgZWxlLmF0dGFjaEV2ZW50ICYmIGVsZS5hdHRhY2hFdmVudCgnb24nICsgdHlwZSwgZm4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgZm4sIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVuYmluZEV2ZW50KGVsZSwgdHlwZSwgZm4pIHtcbiAgICAgICAgaWYgKGVsZS5kZXRhY2hFdmVudCkge1xuICAgICAgICAgICAgZWxlLmRldGFjaEV2ZW50ICYmIGVsZS5kZXRhY2hFdmVudCgnb24nICsgdHlwZSwgZm4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgZm4sIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVhY2gob2JqZWN0LCBmbikge1xuICAgICAgICBpZiAob2JqZWN0ICYmIGZuKSB7XG4gICAgICAgICAgICB2YXIgbCA9IG9iamVjdC5sZW5ndGg7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGwgJiYgZm4ob2JqZWN0W2ldLCBpKSAhPT0gZmFsc2U7IGkrKykge31cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRocm90dGxlKGZuLCBtaW5EZWxheSwgc2NvcGUpIHtcbiAgICAgICAgdmFyIGxhc3RDYWxsID0gMDtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIG5vdyA9ICtuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgaWYgKG5vdyAtIGxhc3RDYWxsIDwgbWluRGVsYXkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsYXN0Q2FsbCA9IG5vdztcbiAgICAgICAgICAgIGZuLmFwcGx5KHNjb3BlLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgIH1cbn0pOyJdLCJmaWxlIjoiYmxhenkubWluLmpzIn0= +!function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.Blazy=e()}(this,function(){"use strict";function t(t){setTimeout(function(){var o=t._util;o.elements=a(t.options.selector),o.count=o.elements.length,o.destroyed&&(o.destroyed=!1,t.options.container&&f(t.options.container,function(t){l(t,"scroll",o.validateT)}),l(window,"resize",o.saveViewportOffsetT),l(window,"resize",o.validateT),l(window,"scroll",o.validateT)),e(t)},1)}function e(t){for(var e=t._util,n=0;n=v.left&&e.bottom>=v.top&&e.left<=v.right&&e.top<=v.bottom}function n(t,e,o){if(!i(t,o.successClass)&&(e||o.loadInvisible||t.offsetWidth>0&&t.offsetHeight>0)){var n=t.getAttribute(p)||t.getAttribute(o.src);if(n){var a=n.split(o.separator),c=a[m&&a.length>1?1:0],l="img"===t.nodeName.toLowerCase();if(l||void 0===t.src){var u=new Image;u.onerror=function(){o.error&&o.error(t,"invalid"),r(t,o.errorClass)},u.onload=function(){l?t.src=c:t.style.backgroundImage='url("'+c+'")',s(t,o)},u.src=c}else t.src=c,s(t,o)}else o.error&&o.error(t,"missing"),i(t,o.errorClass)||r(t,o.errorClass)}}function s(t,e){r(t,e.successClass),e.success&&e.success(t),f(e.breakpoints,function(e){t.removeAttribute(e.src)}),t.removeAttribute(e.src)}function i(t,e){return(" "+t.className+" ").indexOf(" "+e+" ")!==-1}function r(t,e){t.className=t.className+" "+e}function a(t){for(var e=[],o=document.querySelectorAll(t),n=o.length;n--;e.unshift(o[n]));return e}function c(t){v.bottom=(window.innerHeight||document.documentElement.clientHeight)+t,v.right=(window.innerWidth||document.documentElement.clientWidth)+t}function l(t,e,o){t.attachEvent?t.attachEvent&&t.attachEvent("on"+e,o):t.addEventListener(e,o,!1)}function u(t,e,o){t.detachEvent?t.detachEvent&&t.detachEvent("on"+e,o):t.removeEventListener(e,o,!1)}function f(t,e){if(t&&e)for(var o=t.length,n=0;n1,v={},v.top=0-i.options.offset,v.left=0-i.options.offset,i.revalidate=function(){t(this)},i.load=function(t,e){var o=this.options;void 0===t.length?n(t,e,o):f(t,function(t){n(t,e,o)})},i.destroy=function(){var t=this,e=t._util;t.options.container&&f(t.options.container,function(t){u(t,"scroll",e.validateT)}),u(window,"scroll",e.validateT),u(window,"resize",e.validateT),u(window,"resize",e.saveViewportOffsetT),e.count=0,e.elements.length=0,e.destroyed=!0},r.validateT=d(function(){e(i)},i.options.validateDelay,i),r.saveViewportOffsetT=d(function(){c(i.options.offset)},i.options.saveViewportOffsetDelay,i),c(i.options.offset),f(i.options.breakpoints,function(t){if(t.width>=window.screen.width)return p=t.src,!1}),t(i)}}); \ No newline at end of file diff --git a/build/js/main.min.js b/build/js/main.min.js index c87b37e..357159c 100755 --- a/build/js/main.min.js +++ b/build/js/main.min.js @@ -1,941 +1 @@ -// main.js // -// Wszystko wrzucamy tu - -(function($) { - 'use strict'; - - var _destroyFn; - - $.scrollupbar = function($bar, options) { - // Default options - options = $.extend({ - enterViewport: $.noop, - fullyEnterViewport: $.noop, - exitViewport: $.noop, - partiallyExitViewport: $.noop - }, options); - - function isFullyInViewport() { - return $window.scrollTop() <= $bar.offset().top; - } - - function isInViewport() { - return $window.scrollTop() < $bar.offset().top + $bar.outerHeight(); - } - - var $window = $(window), - $document = $(document), - minY = $bar.css('position') == 'fixed' ? 0 : $bar.offset().top, - lastY = $window.scrollTop(), // Use last Y to detect scroll direction. - initialPosTop = $bar.position().top, - iOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent), - timeout; - - $.scrollupbar.isInViewport = isInViewport(); - $.scrollupbar.isFullyInViewport = isFullyInViewport(); - - // iOS can't handle momentum scroll properly (See discussion on - // http://stackoverflow.com/questions/2863547). - if (!iOS) { - $window.on('scroll.scrollupbar', function() { - var y = $window.scrollTop(), - barHeight = $bar.outerHeight(); - - // Ignore elastic scrolling. - if (y < 0 || y > ($document.height() - $window.height())) { - return; - } - - // Cancel the event fired by the previous scroll. - if (timeout) { - clearTimeout(timeout); - } - - if (y < lastY) { // Scrolling up - // If the bar is hidden, place it right above the top frame. - if (!$.scrollupbar.isInViewport && lastY - barHeight >= minY) { - $bar.css('top', lastY - barHeight); - $.scrollupbar.isInViewport = true; - options.enterViewport(); - } - - // Scrolls up bigger than the bar's height fixes the bar on top. - if (isFullyInViewport()) { - if (y >= minY) { - $bar.css({ - 'position': 'fixed', - 'top': 0 - }); - } else { - $bar.css({ - 'position': 'absolute', - 'top': initialPosTop - }); - } - - if (!$.scrollupbar.isFullyInViewport) { - $.scrollupbar.isFullyInViewport = true; - options.fullyEnterViewport(); - } - } - - // Fire an event to reveal the entire bar after 400ms if the scroll - // wasn't big enough. - timeout = setTimeout(function() { - if (!isFullyInViewport()) { - $bar.css({ - 'position': 'fixed', - 'top': $bar.offset().top - y - }); - - $bar.animate({'top': 0}, 100, function() { - $.scrollupbar.isFullyInViewport = true; - options.fullyEnterViewport(); - }); - } - }, 400); - } else if (y > lastY) { // Scrolling down - // Unfix the bar allowing it to scroll with the page. - if ($.scrollupbar.isFullyInViewport) { - $bar.css({ - 'position': 'absolute', - 'top': lastY > minY ? lastY : initialPosTop - }); - - if (!isFullyInViewport()) { - $.scrollupbar.isFullyInViewport = false; - options.partiallyExitViewport(); - } - } - - if ($.scrollupbar.isInViewport && !isInViewport()) { - $.scrollupbar.isInViewport = false; - options.exitViewport(); - } - - // Fire an event to hide the entire bar after 400ms if the scroll - // wasn't big enough. - timeout = setTimeout(function() { - if (isInViewport() && y - barHeight >= minY) { - $bar.animate({'top': y - barHeight}, 100, function() { - $.scrollupbar.isInViewport = false; - options.exitViewport(); - }); - } - }, 400); - } - - lastY = y; - }); - } else { // Fallback simplified behaviour for iOS. - $window.on('touchstart.scrollupbar', function () { - lastY = $window.scrollTop(); - }); - - $window.on('touchend.scrollupbar', function () { - var y = $window.scrollTop(); - - if (y < lastY || y - $bar.outerHeight() < minY) { // Scrolling up - if (y <= minY) { - // Restore original position. - $bar.css({ - 'position': 'absolute', - 'top': initialPosTop - }); - - $bar.show(function() { - $.scrollupbar.isInViewport = true; - $.scrollupbar.isFullyInViewport = true; - options.enterViewport(); - options.fullyEnterViewport(); - }); - } else { - $bar.css({ - 'position': 'fixed', - 'top': 0 - }); - - $.scrollupbar.isInViewport = true; - options.enterViewport(); - - $bar.slideDown(function() { - $.scrollupbar.isFullyInViewport = true; - options.fullyEnterViewport(); - }); - } - } else if (y > lastY) { // Scrolling down - $.scrollupbar.isFullyInViewport = false; - options.partiallyExitViewport(); - - $bar.slideUp(function() { - $.scrollupbar.isInViewport = false; - options.exitViewport(); - }); - } - - lastY = y; - }); - } - - _destroyFn = function() { - // Unbind all listeners added by scrollupbar plugin - $window.off('.scrollupbar'); - - // Restore original bar position. - $bar.css({ - 'position': 'absolute', - 'top': initialPosTop - }); - }; - - return $bar; - }; - - $.scrollupbar.destroy = function() { - if (_destroyFn) { - return _destroyFn(); - } - }; - - $.fn.scrollupbar = function(options) { - return $.scrollupbar(this, options); - }; -})(jQuery); - -////= ../../bower_components/df-visible/jquery.visible.js - -jQuery(function($) { - - /** - * Dropy - * http://codepen.io/Tombek/pen/OPvpLe - */ - var dropy = { - $dropys: null, - openClass: 'open', - selectClass: 'selected', - init: function(){ - var self = this; - - self.$dropys = $('.dropy'); - self.eventHandler(); - }, - eventHandler: function(){ - var self = this; - - // Opening a dropy - self.$dropys.find('.dropy__title').click(function(){ - self.$dropys.removeClass(self.openClass); - $(this).parents('.dropy').addClass(self.openClass); - }); - - // Click on a dropy list - self.$dropys.find('.dropy__content ul li a').click(function(){ - var $that = $(this); - var $dropy = $that.parents('.dropy'); - var $input = $dropy.find('input'); - var $title = $(this).parents('.dropy').find('.dropy__title span'); - - // Remove selected class - $dropy.find('.dropy__content a').each(function(){ - $(this).removeClass(self.selectClass); - }); - - // Update selected value - $title.html($that.html()); - $input.val($that.attr('data-value')).trigger('change'); - - // If back to default, remove selected class else addclass on right element - if($that.hasClass('dropy__header')){ - $title.removeClass(self.selectClass); - $title.html($title.attr('data-title')); - } - else{ - $title.addClass(self.selectClass); - $that.addClass(self.selectClass); - } - - // Close dropdown - $dropy.removeClass(self.openClass); - }); - - // Close all dropdown onclick on another element - $(document).bind('click', function(e){ - if (! $(e.target).parents().hasClass('dropy')){ self.$dropys.removeClass(self.openClass); } - }); - } - }; - - $(function(){ - dropy.init(); - }); - - function cardExcerpt() { - $(".card__excerpt").text(function(index, currentText) { - return currentText.substr(0, 125) + '\u2026'; - }); - } - cardExcerpt(); - - // Pakuje mniejsze obrazki bez podpisu w
// - // Jeśli obrazek ma tytuł, tym się zajmuje php funkcja w project-functions.php - $('.project__content p').each(function(index) { - var some_img = $(this).find('img'); - var width = some_img.width(); - if (width < 980) { - some_img.wrap("
"); - } - }); - - // Notyfikacje, powiadomienia // - $(".note-close").click(function() { - $(this).parent() - .animate({ - opacity: 0 - }, 250, function() { - $(this) - .animate({ - marginBottom: 0 - }, 250) - .children() - .animate({ - padding: 0 - }, 250) - .wrapInner("
") - .children() - .slideUp(250, function() { - $(this).closest(".note").remove(); - }); - }); - }); - - (function() { - var recruitment = document.getElementById('recruitment'); - if (recruitment) { - recruitment.style.backgroundImage = "url('" + recruitment.dataset.bg + "')"; - } - })(); - - //// = partials/show-nicknames.js - - $(document).ready(function(){ - // $("#nav-mobile").html($("#nav-main").html()); - $("#nav-trigger .navicon-button").click(function(){ - console.info('Burger clicked'); - if ($("#nav ul").hasClass("nav__menu--expanded")) { - $("#nav ul").removeClass("nav__menu--expanded").slideUp(250); - $(this).removeClass("open"); - } else { - $("#nav ul").addClass("nav__menu--expanded").slideDown(250); - $(this).addClass("open"); - } - }); - }); - - (function() { - // Żeby tooltip nie klikał - $('.tooltip').on('click', function(e) { - e.preventDefault(); - }); - - $('[data-github]').hover(function(e) { - loadGithub(); - $(this).children('.tooltip').addClass('tooltip--active'); - }, function(e) { - $(this).children('.tooltip').removeClass('tooltip--active'); - }); - - $('[data-lastfm]').hover(function(e) { - loadLastfm(); - $(this).children('.tooltip').addClass('tooltip--active'); - }, function(e) { - $(this).children('.tooltip').removeClass('tooltip--active'); - }); - })(); - - function loadGithub() { - // Pobiera url z hrefa - var profileUrl = $('a[data-github]').attr('href'); - // Odpowiednio obcina go do username - var username = profileUrl.substr(19); - // Dodaje username do url zapytania - var requri = 'https://api.github.com/users/' + username; - // Sprawdza, czy tooltip pusty, by nie generować nowych zapytań - // i nie dodawać po raz kolejny dane do tooltipa - if ($('[data-github] .tooltip').is(':empty')) { - requestJSON(requri, function(json) { - if (json.message === "Nie znaleziono" || username === '') { - $('[data-github] .tooltip').html("

Brak informacji

"); - } else { - username = json.login; - var profileurl = json.html_url; - var reposnum = json.public_repos; - var aviurl = json.avatar_url; - - - var outhtml = '
' + - '

@' + username + '

'; - outhtml = outhtml + 'Repozytoriów: ' + reposnum + '
'; - $('[data-github] .tooltip').append(outhtml); - - } // end else statement - }); // end requestJSON Ajax call - } - - function requestJSON(url, callback) { - $.ajax({ - url: url, - complete: function(xhr) { - callback.call(null, xhr.responseJSON); - } - }); - } - } - - function loadLastfm() { - // Pobiera url z hrefa - var profileUrl = $('a[data-lastfm]').attr('href'); - // Odpowiednio obcina go do username - var username = profileUrl.substr(27); - var baseUrl = 'http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks'; - var api_key = '299020c062c481f083ecd0276c315e3a'; - - var requestUrl = baseUrl + '&user=' + username + '&api_key=' + api_key + '&format=json'; - console.log(username); - if ($('[data-lastfm] .tooltip').is(':empty')) { - $.getJSON(requestUrl, function(data) { - var artist = data.recenttracks.track[0].artist["#text"]; - var song = data.recenttracks.track[0]["name"]; - var cover = data.recenttracks.track[0].image[3]["#text"]; - if (cover === "") { - cover = "http://img2-ak.lst.fm/i/u/174s/4128a6eb29f94943c9d206c08e625904.png"; - } - var outhtml = '
' + artist + '' + song + '
'; - $('[data-lastfm] .tooltip').append(outhtml); - }); - } - } - - $(function() { - $('a[href*="#"]:not(.link--tab)').click(function() { - if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { - var target = $(this.hash); - target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); - if (target.length) { - $('html, body').animate({ - scrollTop: target.offset().top - }, 800); - return false; - } - } - }); - }); - - $(document).ready(function() { - var bLazy = new Blazy({ - offset: 20, - selector: '.blazy', - loadInvisible: false, - breakpoints: [{ - width: 360, // Max-width - src: 'data-src-small' - }], - success: function(element) { - $(element).parent().removeClass('loading', 500); - updateCounter(); - }, - error: function(element, msg) { - if (msg === 'missing') { - $(element).parent().removeClass('loading', 500); // Data-src is missing - console.error("bLazy: data-src is missing"); - } else if (msg === 'invalid') { - $(element).parent().removeClass('loading', 500); - // Data-src is invalid - console.error("bLazy: data-src is invalid"); - - } - } - }); - // not needed, only here to illustrate amount of loaded images - var imageLoaded = 0; - - function updateCounter() { - imageLoaded++; - console.info("bLazy: Images loaded: %d", imageLoaded); - } - - // tabs(bLazy); - - ////= member.js - - //Skraca imiona, by nie wychodziły za bloki - $('.membercard__name a').each(function(index) { - var a = $(this); - if (a.html().length > 17) { - var name = a.text(); - // console.log(name); - var trimmed_name = name.charAt(0) + ". " + name.substr(name.indexOf(' ') + 1); - // console.log(trimmed_name); - a.text(trimmed_name); - if (a.html().length > 17) { - a.parent().addClass('membercard__name--tooLong'); - } - } - }); - - $('.membercardSmall__name a').each(function(index) { - var length = $(this).html().length; - if (length > 14) { - var name = $(this).text(); - // console.log(name); - var trimmed_name = name.charAt(0) + ". " + name.substr(name.indexOf(' ') + 1); - // console.log(trimmed_name); - $(this).text(trimmed_name); - } - }); - - (function() { - var recruitment = document.getElementById('recruitment'); - if (recruitment) { - recruitment.style.backgroundImage = "url('" + recruitment.dataset.bg + "')"; - } - })(); - - (function() { - var ajax_url = $('.global').attr('data-ajax-url'); - var post_offset = 0; - var incNumber = 6; // ilość postów do załadowania - - var projects = (function(setProjects) { - var loaded; - var total; - return { - incLoaded: function() { - loaded = loaded + incNumber; - }, - getLoaded: function() { - return loaded; - }, - setLoaded: function(setProjects) { - loaded = setProjects; - }, - setTotal: function(setProjects) { - total = setProjects; - }, - getTotal: function() { - return total; - } - }; - })(); - var loadingButton = (function(button){ - return { - showSpinner: function(button) { - button.html('
'); - }, - showCaption: function(button) { - button.html('Zobacz starsze'); - }, - hide: function(button) { - button.hide(); - } - }; - })(); - - $('#load_more_posts').on('click', loadMore); - $('#load_more').on('click', loadProjects); - - function loadMore() { - console.log('Clicked load_more'); - $(this).html('
'); - post_offset = parseInt(post_offset) + 6; - $.ajax({ - url: ajax_url, - type: 'POST', - data: { - action: 'load_posts', - post_offset: post_offset, - }, - success: function(data) { - $('#load_more_posts').html('Zobacz starsze'); - $('#posts .cardsWrapper').append(data); - console.info('Ajax: OK'); - bLazy.revalidate(); - cardExcerpt(); - } - }); - } - - function loadProjects() { - var thisParent = $(this).parent(); - // ustawia całkowitą liczbę danych projektów - projects.setTotal(thisParent.attr('data-total')); - // jeśli jeszcze nie pobierano ajaxem projektów, to ustawia wartość - // równą już wyświetlonych - if (!projects.getLoaded()) { - projects.setLoaded(thisParent.find('.card').length); - console.log('Already:', projects.getLoaded()); - } - var projects_status = thisParent.attr('data-projects-status'); - post_offset = parseInt(post_offset) + incNumber; - - if (projects.getTotal() > projects.getLoaded()) { - loadingButton.showSpinner($('#load_more')); - $.ajax({ - url: ajax_url, - type: 'POST', - data: { - action: 'load_projects', - post_offset: post_offset, - projects_status: projects_status, - }, - success: function(data) { - thisParent.children('.cardsWrapper').append(data); - bLazy.revalidate(); - cardExcerpt(); - loadingButton.showCaption($('#load_more')); - projects.incLoaded(); - console.info('Ajax: Loaded more %s projects: %d/%d', projects_status, projects.getLoaded(), projects.getTotal()); - if (projects.getTotal() <= projects.getLoaded()) { - loadingButton.hide($('#load_more')); - } - } - }); - } else { - return false; - } - } - })(); - - function initTopbar() { - $('.topbarWrapper').scrollupbar({ - enterViewport: function() { - $('.topbarWrapper').addClass('topbarWrapper--visible'); - }, - fullyEnterViewport: function() { - $('#last-event').text('fullyEnterViewport'); - }, - exitViewport: function() { - $('#last-event').text('exitViewport'); - }, - partiallyExitViewport: function() { - $('#last-event').text('partiallyExitViewport'); - } - }); - } - initTopbar(); - - if ($(window).width() < 750) { - $.scrollupbar.destroy('.topbarWrapper'); - } - - $(window).scroll(function(event) { - // didScroll = true; - var st = $(this).scrollTop(); - // Gdy jesteśmy na samej górze, to pokazyjemy całe logo - if (st === 0) { - $('.topbarWrapper').removeClass('topbarWrapper--visible'); - } - }); - - var tabs = (function() { - var currentTab; - return { - init: function() { - // pobieramy href - currentTab = $('.tabsMenu__item--current .link--tab').attr('href'); - // href jest jednocześnie id odpowiedniego tabu, który wyświetlamy - $(currentTab).addClass('tab__content--visible'); - // ładujemy obrazki - bLazy.load($(".blazy", currentTab), true); - console.info('Tabs initiated:', currentTab); - }, - reset: function() { - // Z tym #tabsReset, to taki hack. Wykorzystywany dlatego, że - // po kliknięciu chowają się wszystkie taby, oprócz tej z odpowiednim id - currentTab = $('#tabsReset .link--tab').attr('href'); - $(currentTab).removeClass("tab__content--hidden").addClass("tab__content--visible"); - console.info('Tabs initiated:', currentTab); - } - }; - })(); - tabs.init(); - - $(".global").on('click', '.link--tab', function(event) { - // wyłącza domyślne przejście na adres linku - event.preventDefault(); - // dodaje klasę do
  • - $(this).parent().addClass("tabsMenu__item--current"); - // usuwa klasę z
  • - $(this).parent().siblings().removeClass("tabsMenu__item--current"); - // pobieramy id z hrefu - var tab = $(this).attr("href"); - // jeśli blok nie ma takiego id, to chowamy go - $(".tab__content").not(tab).addClass("tab__content--hidden").removeClass("tab__content--visible"); - // a jeśli ma, to pokazujemy - $(tab).removeClass("tab__content--hidden").addClass("tab__content--visible"); - // ładujemy obrazki w bloku z odpowiednim id - bLazy.load($(".blazy", tab), true); - }); - - // http://codepen.io/jakubtursky/pen/vEwZop - $.fn.jQuerySimpleCounter = function( options ) { - var settings = $.extend({ - start: 0, - end: 100, - easing: 'swing', - duration: 400, - complete: '' - }, options ); - - var thisElement = $(this); - - $({count: settings.start}).animate({count: settings.end}, { - duration: settings.duration, - easing: settings.easing, - step: function() { - var mathCount = Math.ceil(this.count); - thisElement.children('.counters__count').text(mathCount); - }, - complete: settings.complete - }); - }; - - // var finishedNumber = $('#finished').data('finished'); - // console.log(finishedNumber); - // $('#finished').jQuerySimpleCounter({end: finishedNumber, duration: 3000}); - // $('#number2').jQuerySimpleCounter({end: 55,duration: 3000}); - // $('#number3').jQuerySimpleCounter({end: 359,duration: 2000}); - // $('#number4').jQuerySimpleCounter({end: 246,duration: 2500}); - - (function() { - // https://marcin.laber.pl/2014/09/odmiana-liczebnikow-w-javascript/ - var num = function(value, numerals, wovalue) { - var t0 = value % 10, - t1 = value % 100, - vo = []; - if (wovalue !== true) - vo.push(value); - if (value === 1 && numerals[1]) - vo.push(numerals[1]); - else if ((value === 0 || (t0 >= 0 && t0 <= 1) || (t0 >= 5 && t0 <= 9) || (t1 > 10 && t1 < 20)) && numerals[0]) - vo.push(numerals[0]); - else if (((t1 < 10 || t1 > 20) && t0 >= 2 && t0 <= 4) && numerals[2]) - vo.push(numerals[2]); - return vo[1]; - }; - - $('.counter').each(function(index) { - var status = $(this).attr('id'); - var count = parseInt($(this).children('a').html()); - console.log(count, status); - if (status === 'finished') { - $(this).find('.counter__label').html(num(count, ["Projektów ukończonych", "Projekt ukończony", "Projekty ukończone"])); - } else { - $(this).find('.counter__label').html(num(count, ["Projektów realizowanych", "Projekt realizowany", "Projekty realizowane"])); - } - }); - $('.counters__counter').each(function(index) { - var status = $(this).attr('id'); - var count = parseInt($(this).children('.counters__count').data(status)); - console.log(count, status); - if (status === 'finished') { - $(this).find('.counters__label').html(num(count, ["Projektów ukończonych", "Projekt ukończony", "Projekty ukończone"])); - } else if (status === 'in-progress'){ - $(this).find('.counters__label').html(num(count, ["Projektów realizowanych", "Projekt realizowany", "Projekty realizowane"])); - } - $('#'+status).jQuerySimpleCounter({end: count, duration: 2500}); - - }); - - })(); - - (function() { - // animacja ze zmieniającym się gradientem obciąża CPU, - // więc włączam ją tylko, gdy użytkownik dosroluje do końca strony - $(window).scroll(function () { - if ($(window).scrollTop() >= $(document).height() - $(window).height() - 500) { - $('.footer-wrapper').addClass('footer-wrapper--animate'); - } else { - $('.footer-wrapper').removeClass('footer-wrapper--animate'); - } - }); - })(); - - (function() { - $(".hero__middleTitle").one('animationend webkitAnimationEnd oAnimationEnd oanimationend MSAnimationEnd', - function() { - $(this).removeClass('hero__middleTitle--animation'); - }); - $(".hero__leftTitle").one('animationend webkitAnimationEnd oAnimationEnd oanimationend MSAnimationEnd', - function() { - $(this).removeClass('hero__leftTitle--animation'); - }); - $(".hero__rightTitle").one('animationend webkitAnimationEnd oAnimationEnd oanimationend MSAnimationEnd', - function() { - $(this).removeClass('hero__rightTitle--animation'); - }); - - - $('.hero__left').hover(function() { - $('.hero__middle').addClass('hero__middle--collapsedL'); - $('.hero__middleImg').addClass('hero__middleImg--opacity60'); - $('.hero__middleTitle').addClass('hero__middleTitle--opacity0'); - $(this).addClass('hero__left--mvR'); - }, function() { - $('.hero__middle').removeClass('hero__middle--collapsedL'); - $('.hero__middleImg').removeClass('hero__middleImg--opacity60'); - $('.hero__middleTitle').removeClass('hero__middleTitle--opacity0'); - $(this).removeClass('hero__left--mvR'); - }); - $('.hero__right').hover(function() { - $('.hero__middle').addClass('hero__middle--collapsedR'); - $('.hero__middleImg').addClass('hero__middleImg--opacity60'); - $('.hero__middleTitle').addClass('hero__middleTitle--opacity0'); - $(this).addClass('hero__right--mvL'); - - }, function() { - $('.hero__middle').removeClass('hero__middle--collapsedR'); - $('.hero__middleImg').removeClass('hero__middleImg--opacity60'); - $('.hero__middleTitle').removeClass('hero__middleTitle--opacity0'); - $(this).removeClass('hero__right--mvL'); - - }); - - var height = $(window).height(); - var width = $(window).width(); - console.log(height); - if(width<750) { - var heroMiddleImg = document.getElementsByClassName('hero__middleImg')[0]; - var heroMiddle = document.getElementsByClassName('hero__middle')[0]; - console.log(heroMiddleImg); - heroMiddleImg.height= height; - } - })(); - - // Tak w ogóle, to okno modalne należy oddzielić od - // SPONSORÓW i WSPÓŁPRACY, zrobić niezależnym elementem - - (function() { - $('.brand').each(function(index) { - if ($(this).data('brand-desc').length < 1) { - $(this).find('.brand__more').remove(); - } - }); - - $('.brand__more').bind("click", function(e) { - e.preventDefault(); - var brand = $(this).parents('.brand'); - var brandName = brand.data('brand-name'); - var brandLink = brand.data('brand-link'); - var brandDesc = brand.data('brand-desc'); - var brandLogo = brand.find('.brand__logo').attr('src'); - console.log(brand, brandName, brandLink, brandDesc, brandLogo); - - $('.modal__title').html(brandName); - $('.modal__content a').html(brandLink).attr('href', brandLink); - $('.modal__content p').html(brandDesc); - $('.modal__content p').html(brandDesc); - $('.modal__image').attr('src', brandLogo); - - $("html").addClass("doNotScroll"); - $('.modal').addClass('visible'); - }); - - //On clicking the modal background - $('[data-modal-close]').bind("click", function(e) { - $('.modal').removeClass('visible'); - $("html").removeClass("doNotScroll"); - }); - - })(); - - (function() { - Slider = $('#slider').Swipe({ - auto: 0, - continuous: true, - }).data('Swipe'); - if (Slider) { - $('.swipe__next').on('click', Slider.next); - $('.swipe__prev').on('click', Slider.prev); - } - - })(); - - var tu = 1; - var firstRun = false; - console.log('ultron'); - - $.ajaxSetup({ - beforeSend: function(xhr) { - if (xhr.overrideMimeType) { - xhr.overrideMimeType("application/json"); - } - } - }); - - function update_time() { - $.ajax({ - dataType: "json", - type: "GET", - url: "./ultron/data.json", - cache: false, - success: function(data) { - var latest = latestData(data); - if (firstRun === false) { - $('.state').html(isOpen(latest.state)); - firstRun = true; - console.log(latest); - } - console.log(latest); - $('.desc').fadeOut(0, function() { - var tajm = Math.round(new Date().getTime() / 1000); - if (tajm - latest.time < 60) { - $('.desc').html((tajm - latest.time) + "s ago"); - } else if (tajm - latest.time < 3600) { - $minutes = parseInt((tajm - latest.time) / 60); - $('.desc').html($minutes + "m ago"); - } else { - $hours = parseInt((tajm - latest.time) / 3600); - $minutes = parseInt((tajm - latest.time) / 60) - $hours * 60; - $('.desc').html($hours + "h " + $minutes + "m ago"); - } - $('.state').html(isOpen(latest.state)); - }); - $('.desc').fadeIn(0); - - setTimeout(function() { - update_time(); - }, tu * 1000); - }, - error: function(e, xhr) { - console.error("err"); - setTimeout(function() { - update_time(); - }, tu * 1000); - - } - }); - } - update_time(); - - function isOpen(data) { - if(data === "1"){ - return "Otwarte"; - } else { - return "Zamknięte"; - } - } - function latestData(data) { - return data.slice(-1)[0]; - } - - }); - - // Prezes zawsze na pierwszym miejscu // - $('.membercard#president').insertBefore('#current_members .cardsWrapper div:eq(0)'); - - // Dodaje do klasę "link" - $('.project__content a').addClass('link'); - -}); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyJtYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIG1haW4uanMgLy9cbi8vIFdzenlzdGtvIHdyenVjYW15IHR1XG5cbihmdW5jdGlvbigkKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICB2YXIgX2Rlc3Ryb3lGbjtcblxuICAkLnNjcm9sbHVwYmFyID0gZnVuY3Rpb24oJGJhciwgb3B0aW9ucykge1xuICAgIC8vIERlZmF1bHQgb3B0aW9uc1xuICAgIG9wdGlvbnMgPSAkLmV4dGVuZCh7XG4gICAgICBlbnRlclZpZXdwb3J0OiAkLm5vb3AsXG4gICAgICBmdWxseUVudGVyVmlld3BvcnQ6ICQubm9vcCxcbiAgICAgIGV4aXRWaWV3cG9ydDogJC5ub29wLFxuICAgICAgcGFydGlhbGx5RXhpdFZpZXdwb3J0OiAkLm5vb3BcbiAgICB9LCBvcHRpb25zKTtcblxuICAgIGZ1bmN0aW9uIGlzRnVsbHlJblZpZXdwb3J0KCkge1xuICAgICAgcmV0dXJuICR3aW5kb3cuc2Nyb2xsVG9wKCkgPD0gJGJhci5vZmZzZXQoKS50b3A7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNJblZpZXdwb3J0KCkge1xuICAgICAgcmV0dXJuICR3aW5kb3cuc2Nyb2xsVG9wKCkgPCAkYmFyLm9mZnNldCgpLnRvcCArICRiYXIub3V0ZXJIZWlnaHQoKTtcbiAgICB9XG5cbiAgICB2YXIgJHdpbmRvdyA9ICQod2luZG93KSxcbiAgICAgICAgJGRvY3VtZW50ID0gJChkb2N1bWVudCksXG4gICAgICAgIG1pblkgPSAkYmFyLmNzcygncG9zaXRpb24nKSA9PSAnZml4ZWQnID8gMCA6ICRiYXIub2Zmc2V0KCkudG9wLFxuICAgICAgICBsYXN0WSA9ICR3aW5kb3cuc2Nyb2xsVG9wKCksIC8vIFVzZSBsYXN0IFkgdG8gZGV0ZWN0IHNjcm9sbCBkaXJlY3Rpb24uXG4gICAgICAgIGluaXRpYWxQb3NUb3AgPSAkYmFyLnBvc2l0aW9uKCkudG9wLFxuICAgICAgICBpT1MgPSAvKGlQYWR8aVBob25lfGlQb2QpL2cudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxcbiAgICAgICAgdGltZW91dDtcblxuICAgICQuc2Nyb2xsdXBiYXIuaXNJblZpZXdwb3J0ID0gaXNJblZpZXdwb3J0KCk7XG4gICAgJC5zY3JvbGx1cGJhci5pc0Z1bGx5SW5WaWV3cG9ydCA9IGlzRnVsbHlJblZpZXdwb3J0KCk7XG5cbiAgICAvLyBpT1MgY2FuJ3QgaGFuZGxlIG1vbWVudHVtIHNjcm9sbCBwcm9wZXJseSAoU2VlIGRpc2N1c3Npb24gb25cbiAgICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI4NjM1NDcpLlxuICAgIGlmICghaU9TKSB7XG4gICAgICAkd2luZG93Lm9uKCdzY3JvbGwuc2Nyb2xsdXBiYXInLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHkgPSAkd2luZG93LnNjcm9sbFRvcCgpLFxuICAgICAgICAgICAgYmFySGVpZ2h0ID0gJGJhci5vdXRlckhlaWdodCgpO1xuXG4gICAgICAgIC8vIElnbm9yZSBlbGFzdGljIHNjcm9sbGluZy5cbiAgICAgICAgaWYgKHkgPCAwIHx8IHkgPiAoJGRvY3VtZW50LmhlaWdodCgpIC0gJHdpbmRvdy5oZWlnaHQoKSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDYW5jZWwgdGhlIGV2ZW50IGZpcmVkIGJ5IHRoZSBwcmV2aW91cyBzY3JvbGwuXG4gICAgICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHkgPCBsYXN0WSkgeyAvLyBTY3JvbGxpbmcgdXBcbiAgICAgICAgICAvLyBJZiB0aGUgYmFyIGlzIGhpZGRlbiwgcGxhY2UgaXQgcmlnaHQgYWJvdmUgdGhlIHRvcCBmcmFtZS5cbiAgICAgICAgICBpZiAoISQuc2Nyb2xsdXBiYXIuaXNJblZpZXdwb3J0ICYmIGxhc3RZIC0gYmFySGVpZ2h0ID49IG1pblkpIHtcbiAgICAgICAgICAgICRiYXIuY3NzKCd0b3AnLCBsYXN0WSAtIGJhckhlaWdodCk7XG4gICAgICAgICAgICAkLnNjcm9sbHVwYmFyLmlzSW5WaWV3cG9ydCA9IHRydWU7XG4gICAgICAgICAgICBvcHRpb25zLmVudGVyVmlld3BvcnQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTY3JvbGxzIHVwIGJpZ2dlciB0aGFuIHRoZSBiYXIncyBoZWlnaHQgZml4ZXMgdGhlIGJhciBvbiB0b3AuXG4gICAgICAgICAgaWYgKGlzRnVsbHlJblZpZXdwb3J0KCkpIHtcbiAgICAgICAgICAgIGlmICh5ID49IG1pblkpIHtcbiAgICAgICAgICAgICAgJGJhci5jc3Moe1xuICAgICAgICAgICAgICAgICdwb3NpdGlvbic6ICdmaXhlZCcsXG4gICAgICAgICAgICAgICAgJ3RvcCc6IDBcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAkYmFyLmNzcyh7XG4gICAgICAgICAgICAgICAgJ3Bvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICAndG9wJzogaW5pdGlhbFBvc1RvcFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCEkLnNjcm9sbHVwYmFyLmlzRnVsbHlJblZpZXdwb3J0KSB7XG4gICAgICAgICAgICAgICQuc2Nyb2xsdXBiYXIuaXNGdWxseUluVmlld3BvcnQgPSB0cnVlO1xuICAgICAgICAgICAgICBvcHRpb25zLmZ1bGx5RW50ZXJWaWV3cG9ydCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEZpcmUgYW4gZXZlbnQgdG8gcmV2ZWFsIHRoZSBlbnRpcmUgYmFyIGFmdGVyIDQwMG1zIGlmIHRoZSBzY3JvbGxcbiAgICAgICAgICAvLyB3YXNuJ3QgYmlnIGVub3VnaC5cbiAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICghaXNGdWxseUluVmlld3BvcnQoKSkge1xuICAgICAgICAgICAgICAkYmFyLmNzcyh7XG4gICAgICAgICAgICAgICAgJ3Bvc2l0aW9uJzogJ2ZpeGVkJyxcbiAgICAgICAgICAgICAgICAndG9wJzogJGJhci5vZmZzZXQoKS50b3AgLSB5XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICRiYXIuYW5pbWF0ZSh7J3RvcCc6IDB9LCAxMDAsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICQuc2Nyb2xsdXBiYXIuaXNGdWxseUluVmlld3BvcnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZnVsbHlFbnRlclZpZXdwb3J0KCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIDQwMCk7XG4gICAgICAgIH0gZWxzZSBpZiAoeSA+IGxhc3RZKSB7IC8vIFNjcm9sbGluZyBkb3duXG4gICAgICAgICAgLy8gVW5maXggdGhlIGJhciBhbGxvd2luZyBpdCB0byBzY3JvbGwgd2l0aCB0aGUgcGFnZS5cbiAgICAgICAgICBpZiAoJC5zY3JvbGx1cGJhci5pc0Z1bGx5SW5WaWV3cG9ydCkge1xuICAgICAgICAgICAgJGJhci5jc3Moe1xuICAgICAgICAgICAgICAncG9zaXRpb24nOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAndG9wJzogbGFzdFkgPiBtaW5ZID8gbGFzdFkgOiBpbml0aWFsUG9zVG9wXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCFpc0Z1bGx5SW5WaWV3cG9ydCgpKSB7XG4gICAgICAgICAgICAgICQuc2Nyb2xsdXBiYXIuaXNGdWxseUluVmlld3BvcnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgb3B0aW9ucy5wYXJ0aWFsbHlFeGl0Vmlld3BvcnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoJC5zY3JvbGx1cGJhci5pc0luVmlld3BvcnQgJiYgIWlzSW5WaWV3cG9ydCgpKSB7XG4gICAgICAgICAgICAkLnNjcm9sbHVwYmFyLmlzSW5WaWV3cG9ydCA9IGZhbHNlO1xuICAgICAgICAgICAgb3B0aW9ucy5leGl0Vmlld3BvcnQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGaXJlIGFuIGV2ZW50IHRvIGhpZGUgdGhlIGVudGlyZSBiYXIgYWZ0ZXIgNDAwbXMgaWYgdGhlIHNjcm9sbFxuICAgICAgICAgIC8vIHdhc24ndCBiaWcgZW5vdWdoLlxuICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKGlzSW5WaWV3cG9ydCgpICYmIHkgLSBiYXJIZWlnaHQgPj0gbWluWSkge1xuICAgICAgICAgICAgICAkYmFyLmFuaW1hdGUoeyd0b3AnOiB5IC0gYmFySGVpZ2h0fSwgMTAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAkLnNjcm9sbHVwYmFyLmlzSW5WaWV3cG9ydCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZXhpdFZpZXdwb3J0KCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIDQwMCk7XG4gICAgICAgIH1cblxuICAgICAgICBsYXN0WSA9IHk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgeyAvLyBGYWxsYmFjayBzaW1wbGlmaWVkIGJlaGF2aW91ciBmb3IgaU9TLlxuICAgICAgJHdpbmRvdy5vbigndG91Y2hzdGFydC5zY3JvbGx1cGJhcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGFzdFkgPSAkd2luZG93LnNjcm9sbFRvcCgpO1xuICAgICAgfSk7XG5cbiAgICAgICR3aW5kb3cub24oJ3RvdWNoZW5kLnNjcm9sbHVwYmFyJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgeSA9ICR3aW5kb3cuc2Nyb2xsVG9wKCk7XG5cbiAgICAgICAgaWYgKHkgPCBsYXN0WSB8fCB5IC0gJGJhci5vdXRlckhlaWdodCgpIDwgbWluWSkgeyAvLyBTY3JvbGxpbmcgdXBcbiAgICAgICAgICBpZiAoeSA8PSBtaW5ZKSB7XG4gICAgICAgICAgICAvLyBSZXN0b3JlIG9yaWdpbmFsIHBvc2l0aW9uLlxuICAgICAgICAgICAgJGJhci5jc3Moe1xuICAgICAgICAgICAgICAncG9zaXRpb24nOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAndG9wJzogaW5pdGlhbFBvc1RvcFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICRiYXIuc2hvdyhmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgJC5zY3JvbGx1cGJhci5pc0luVmlld3BvcnQgPSB0cnVlO1xuICAgICAgICAgICAgICAkLnNjcm9sbHVwYmFyLmlzRnVsbHlJblZpZXdwb3J0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgb3B0aW9ucy5lbnRlclZpZXdwb3J0KCk7XG4gICAgICAgICAgICAgIG9wdGlvbnMuZnVsbHlFbnRlclZpZXdwb3J0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJGJhci5jc3Moe1xuICAgICAgICAgICAgICAncG9zaXRpb24nOiAnZml4ZWQnLFxuICAgICAgICAgICAgICAndG9wJzogMFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICQuc2Nyb2xsdXBiYXIuaXNJblZpZXdwb3J0ID0gdHJ1ZTtcbiAgICAgICAgICAgIG9wdGlvbnMuZW50ZXJWaWV3cG9ydCgpO1xuXG4gICAgICAgICAgICAkYmFyLnNsaWRlRG93bihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgJC5zY3JvbGx1cGJhci5pc0Z1bGx5SW5WaWV3cG9ydCA9IHRydWU7XG4gICAgICAgICAgICAgIG9wdGlvbnMuZnVsbHlFbnRlclZpZXdwb3J0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoeSA+IGxhc3RZKSB7IC8vIFNjcm9sbGluZyBkb3duXG4gICAgICAgICAgJC5zY3JvbGx1cGJhci5pc0Z1bGx5SW5WaWV3cG9ydCA9IGZhbHNlO1xuICAgICAgICAgIG9wdGlvbnMucGFydGlhbGx5RXhpdFZpZXdwb3J0KCk7XG5cbiAgICAgICAgICAkYmFyLnNsaWRlVXAoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAkLnNjcm9sbHVwYmFyLmlzSW5WaWV3cG9ydCA9IGZhbHNlO1xuICAgICAgICAgICAgb3B0aW9ucy5leGl0Vmlld3BvcnQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhc3RZID0geTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIF9kZXN0cm95Rm4gPSBmdW5jdGlvbigpIHtcbiAgICAgIC8vIFVuYmluZCBhbGwgbGlzdGVuZXJzIGFkZGVkIGJ5IHNjcm9sbHVwYmFyIHBsdWdpblxuICAgICAgJHdpbmRvdy5vZmYoJy5zY3JvbGx1cGJhcicpO1xuXG4gICAgICAvLyBSZXN0b3JlIG9yaWdpbmFsIGJhciBwb3NpdGlvbi5cbiAgICAgICRiYXIuY3NzKHtcbiAgICAgICAgJ3Bvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgJ3RvcCc6IGluaXRpYWxQb3NUb3BcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gJGJhcjtcbiAgfTtcblxuICAkLnNjcm9sbHVwYmFyLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHtcbiAgICBpZiAoX2Rlc3Ryb3lGbikge1xuICAgICAgcmV0dXJuIF9kZXN0cm95Rm4oKTtcbiAgICB9XG4gIH07XG5cbiAgJC5mbi5zY3JvbGx1cGJhciA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gJC5zY3JvbGx1cGJhcih0aGlzLCBvcHRpb25zKTtcbiAgfTtcbn0pKGpRdWVyeSk7XG5cbi8vLy89IC4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZGYtdmlzaWJsZS9qcXVlcnkudmlzaWJsZS5qc1xuXG5qUXVlcnkoZnVuY3Rpb24oJCkge1xuXG4gICAgLyoqXG4gICAgICogRHJvcHlcbiAgICAgKiBodHRwOi8vY29kZXBlbi5pby9Ub21iZWsvcGVuL09QdnBMZVxuICAgICAqL1xuICAgIHZhciBkcm9weSA9IHtcbiAgICAgICRkcm9weXM6IG51bGwsXG4gICAgICBvcGVuQ2xhc3M6ICdvcGVuJyxcbiAgICAgIHNlbGVjdENsYXNzOiAnc2VsZWN0ZWQnLFxuICAgICAgaW5pdDogZnVuY3Rpb24oKXtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIFxuICAgICAgICBzZWxmLiRkcm9weXMgPSAkKCcuZHJvcHknKTtcbiAgICAgICAgc2VsZi5ldmVudEhhbmRsZXIoKTtcbiAgICAgIH0sXG4gICAgICBldmVudEhhbmRsZXI6IGZ1bmN0aW9uKCl7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBcbiAgICAgICAgLy8gT3BlbmluZyBhIGRyb3B5XG4gICAgICAgIHNlbGYuJGRyb3B5cy5maW5kKCcuZHJvcHlfX3RpdGxlJykuY2xpY2soZnVuY3Rpb24oKXtcbiAgICAgICAgICBzZWxmLiRkcm9weXMucmVtb3ZlQ2xhc3Moc2VsZi5vcGVuQ2xhc3MpO1xuICAgICAgICAgICQodGhpcykucGFyZW50cygnLmRyb3B5JykuYWRkQ2xhc3Moc2VsZi5vcGVuQ2xhc3MpO1xuICAgICAgICB9KTtcbiAgICBcbiAgICAgICAgLy8gQ2xpY2sgb24gYSBkcm9weSBsaXN0XG4gICAgICAgIHNlbGYuJGRyb3B5cy5maW5kKCcuZHJvcHlfX2NvbnRlbnQgdWwgbGkgYScpLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgdmFyICR0aGF0ID0gJCh0aGlzKTtcbiAgICAgICAgICB2YXIgJGRyb3B5ID0gJHRoYXQucGFyZW50cygnLmRyb3B5Jyk7XG4gICAgICAgICAgdmFyICRpbnB1dCA9ICRkcm9weS5maW5kKCdpbnB1dCcpO1xuICAgICAgICAgIHZhciAkdGl0bGUgPSAkKHRoaXMpLnBhcmVudHMoJy5kcm9weScpLmZpbmQoJy5kcm9weV9fdGl0bGUgc3BhbicpO1xuICAgIFxuICAgICAgICAgIC8vIFJlbW92ZSBzZWxlY3RlZCBjbGFzc1xuICAgICAgICAgICRkcm9weS5maW5kKCcuZHJvcHlfX2NvbnRlbnQgYScpLmVhY2goZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3Moc2VsZi5zZWxlY3RDbGFzcyk7XG4gICAgICAgICAgfSk7XG4gICAgXG4gICAgICAgICAgLy8gVXBkYXRlIHNlbGVjdGVkIHZhbHVlXG4gICAgICAgICAgJHRpdGxlLmh0bWwoJHRoYXQuaHRtbCgpKTtcbiAgICAgICAgICAkaW5wdXQudmFsKCR0aGF0LmF0dHIoJ2RhdGEtdmFsdWUnKSkudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgXG4gICAgICAgICAgLy8gSWYgYmFjayB0byBkZWZhdWx0LCByZW1vdmUgc2VsZWN0ZWQgY2xhc3MgZWxzZSBhZGRjbGFzcyBvbiByaWdodCBlbGVtZW50XG4gICAgICAgICAgaWYoJHRoYXQuaGFzQ2xhc3MoJ2Ryb3B5X19oZWFkZXInKSl7XG4gICAgICAgICAgICAkdGl0bGUucmVtb3ZlQ2xhc3Moc2VsZi5zZWxlY3RDbGFzcyk7XG4gICAgICAgICAgICAkdGl0bGUuaHRtbCgkdGl0bGUuYXR0cignZGF0YS10aXRsZScpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICR0aXRsZS5hZGRDbGFzcyhzZWxmLnNlbGVjdENsYXNzKTtcbiAgICAgICAgICAgICR0aGF0LmFkZENsYXNzKHNlbGYuc2VsZWN0Q2xhc3MpO1xuICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAvLyBDbG9zZSBkcm9wZG93blxuICAgICAgICAgICRkcm9weS5yZW1vdmVDbGFzcyhzZWxmLm9wZW5DbGFzcyk7XG4gICAgICAgIH0pO1xuICAgIFxuICAgICAgICAvLyBDbG9zZSBhbGwgZHJvcGRvd24gb25jbGljayBvbiBhbm90aGVyIGVsZW1lbnRcbiAgICAgICAgJChkb2N1bWVudCkuYmluZCgnY2xpY2snLCBmdW5jdGlvbihlKXtcbiAgICAgICAgICAgIGlmICghICQoZS50YXJnZXQpLnBhcmVudHMoKS5oYXNDbGFzcygnZHJvcHknKSl7IHNlbGYuJGRyb3B5cy5yZW1vdmVDbGFzcyhzZWxmLm9wZW5DbGFzcyk7IH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICAkKGZ1bmN0aW9uKCl7XG4gICAgICBkcm9weS5pbml0KCk7XG4gICAgfSk7XG5cbiAgICAgICBmdW5jdGlvbiBjYXJkRXhjZXJwdCgpIHtcbiAgICAgICAgJChcIi5jYXJkX19leGNlcnB0XCIpLnRleHQoZnVuY3Rpb24oaW5kZXgsIGN1cnJlbnRUZXh0KSB7XG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnRUZXh0LnN1YnN0cigwLCAxMjUpICsgJ1xcdTIwMjYnO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNhcmRFeGNlcnB0KCk7XG5cbiAgICAvLyBQYWt1amUgbW5pZWpzemUgb2JyYXpraSBiZXogcG9kcGlzdSB3IDxmaWd1cmU+IC8vXG4gICAgLy8gSmXFm2xpIG9icmF6ZWsgbWEgdHl0dcWCLCB0eW0gc2nEmSB6YWptdWplIHBocCBmdW5rY2phIHcgcHJvamVjdC1mdW5jdGlvbnMucGhwXG4gICAgJCgnLnByb2plY3RfX2NvbnRlbnQgcCcpLmVhY2goZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgIHZhciBzb21lX2ltZyA9ICQodGhpcykuZmluZCgnaW1nJyk7XG4gICAgICB2YXIgd2lkdGggPSBzb21lX2ltZy53aWR0aCgpO1xuICAgICAgaWYgKHdpZHRoIDwgOTgwKSB7XG4gICAgICAgIHNvbWVfaW1nLndyYXAoXCI8ZmlndXJlPjwvZmlndXJlPlwiKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIE5vdHlmaWthY2plLCBwb3dpYWRvbWllbmlhIC8vXG4gICAgJChcIi5ub3RlLWNsb3NlXCIpLmNsaWNrKGZ1bmN0aW9uKCkge1xuICAgICAgJCh0aGlzKS5wYXJlbnQoKVxuICAgICAgICAuYW5pbWF0ZSh7XG4gICAgICAgICAgb3BhY2l0eTogMFxuICAgICAgICB9LCAyNTAsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICQodGhpcylcbiAgICAgICAgICAgIC5hbmltYXRlKHtcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAwXG4gICAgICAgICAgICB9LCAyNTApXG4gICAgICAgICAgICAuY2hpbGRyZW4oKVxuICAgICAgICAgICAgLmFuaW1hdGUoe1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwXG4gICAgICAgICAgICB9LCAyNTApXG4gICAgICAgICAgICAud3JhcElubmVyKFwiPGRpdiAvPlwiKVxuICAgICAgICAgICAgLmNoaWxkcmVuKClcbiAgICAgICAgICAgIC5zbGlkZVVwKDI1MCwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICQodGhpcykuY2xvc2VzdChcIi5ub3RlXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgKGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcmVjcnVpdG1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjcnVpdG1lbnQnKTtcbiAgICAgICAgaWYgKHJlY3J1aXRtZW50KSB7XG4gICAgICAgICAgICByZWNydWl0bWVudC5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBcInVybCgnXCIgKyByZWNydWl0bWVudC5kYXRhc2V0LmJnICsgXCInKVwiO1xuICAgICAgICB9XG4gICAgfSkoKTtcblxuICAgIC8vLy8gPSBwYXJ0aWFscy9zaG93LW5pY2tuYW1lcy5qc1xuXG4gICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtcbiAgICAgICAgLy8gJChcIiNuYXYtbW9iaWxlXCIpLmh0bWwoJChcIiNuYXYtbWFpblwiKS5odG1sKCkpO1xuICAgICAgICAkKFwiI25hdi10cmlnZ2VyIC5uYXZpY29uLWJ1dHRvblwiKS5jbGljayhmdW5jdGlvbigpe1xuICAgICAgICAgIGNvbnNvbGUuaW5mbygnQnVyZ2VyIGNsaWNrZWQnKTtcbiAgICAgICAgICAgIGlmICgkKFwiI25hdiB1bFwiKS5oYXNDbGFzcyhcIm5hdl9fbWVudS0tZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25hdiB1bFwiKS5yZW1vdmVDbGFzcyhcIm5hdl9fbWVudS0tZXhwYW5kZWRcIikuc2xpZGVVcCgyNTApO1xuICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoXCJvcGVuXCIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI25hdiB1bFwiKS5hZGRDbGFzcyhcIm5hdl9fbWVudS0tZXhwYW5kZWRcIikuc2xpZGVEb3duKDI1MCk7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhcIm9wZW5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgKGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyDFu2VieSB0b29sdGlwIG5pZSBrbGlrYcWCXG4gICAgICAgICQoJy50b29sdGlwJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9KTtcbiAgICBcbiAgICAgICAgJCgnW2RhdGEtZ2l0aHViXScpLmhvdmVyKGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGxvYWRHaXRodWIoKTtcbiAgICAgICAgICAgICQodGhpcykuY2hpbGRyZW4oJy50b29sdGlwJykuYWRkQ2xhc3MoJ3Rvb2x0aXAtLWFjdGl2ZScpO1xuICAgICAgICB9LCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKCcudG9vbHRpcCcpLnJlbW92ZUNsYXNzKCd0b29sdGlwLS1hY3RpdmUnKTtcbiAgICAgICAgfSk7XG4gICAgXG4gICAgICAgICQoJ1tkYXRhLWxhc3RmbV0nKS5ob3ZlcihmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBsb2FkTGFzdGZtKCk7XG4gICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKCcudG9vbHRpcCcpLmFkZENsYXNzKCd0b29sdGlwLS1hY3RpdmUnKTtcbiAgICAgICAgfSwgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbignLnRvb2x0aXAnKS5yZW1vdmVDbGFzcygndG9vbHRpcC0tYWN0aXZlJyk7XG4gICAgICAgIH0pO1xuICAgIH0pKCk7XG5cbiAgICBmdW5jdGlvbiBsb2FkR2l0aHViKCkge1xuICAgICAgICAvLyBQb2JpZXJhIHVybCB6IGhyZWZhXG4gICAgICAgIHZhciBwcm9maWxlVXJsID0gJCgnYVtkYXRhLWdpdGh1Yl0nKS5hdHRyKCdocmVmJyk7XG4gICAgICAgIC8vIE9kcG93aWVkbmlvIG9iY2luYSBnbyBkbyB1c2VybmFtZVxuICAgICAgICB2YXIgdXNlcm5hbWUgPSBwcm9maWxlVXJsLnN1YnN0cigxOSk7XG4gICAgICAgIC8vIERvZGFqZSB1c2VybmFtZSBkbyB1cmwgemFweXRhbmlhXG4gICAgICAgIHZhciByZXF1cmkgPSAnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy8nICsgdXNlcm5hbWU7XG4gICAgICAgIC8vIFNwcmF3ZHphLCBjenkgdG9vbHRpcCBwdXN0eSwgYnkgbmllIGdlbmVyb3dhxIcgbm93eWNoIHphcHl0YcWEXG4gICAgICAgIC8vIGkgbmllIGRvZGF3YcSHIHBvIHJheiBrb2xlam55IGRhbmUgZG8gdG9vbHRpcGFcbiAgICAgICAgaWYgKCQoJ1tkYXRhLWdpdGh1Yl0gLnRvb2x0aXAnKS5pcygnOmVtcHR5JykpIHtcbiAgICAgICAgICAgIHJlcXVlc3RKU09OKHJlcXVyaSwgZnVuY3Rpb24oanNvbikge1xuICAgICAgICAgICAgICAgIGlmIChqc29uLm1lc3NhZ2UgPT09IFwiTmllIHpuYWxlemlvbm9cIiB8fCB1c2VybmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgJCgnW2RhdGEtZ2l0aHViXSAudG9vbHRpcCcpLmh0bWwoXCI8aDI+QnJhayBpbmZvcm1hY2ppPC9oMj5cIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWUgPSBqc29uLmxvZ2luO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcHJvZmlsZXVybCA9IGpzb24uaHRtbF91cmw7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXBvc251bSA9IGpzb24ucHVibGljX3JlcG9zO1xuICAgICAgICAgICAgICAgICAgICB2YXIgYXZpdXJsID0ganNvbi5hdmF0YXJfdXJsO1xuICAgIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICB2YXIgb3V0aHRtbCA9ICc8ZGl2IGNsYXNzPVwiZ2hcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICc8aDQgY2xhc3M9XCJnaF9fbmFtZVwiPjxhIGNsYXNzPVwibGlua1wiIGhyZWY9XCInICsgcHJvZmlsZXVybCArICdcIj48aW1nIGNsYXNzPVwiZ2hfX2F2YXRhclwiIHNyYz1cIicgKyBhdml1cmwgKyAnXCI+QCcgKyB1c2VybmFtZSArICc8L2E+PC9oND4nO1xuICAgICAgICAgICAgICAgICAgICBvdXRodG1sID0gb3V0aHRtbCArICc8c3BhbiBjbGFzcz1cImdoX19yZXBvc1wiPlJlcG96eXRvcmnDs3c6ICcgKyByZXBvc251bSArICc8L3NwYW4+PGhyLz48L2Rpdj4nO1xuICAgICAgICAgICAgICAgICAgICAkKCdbZGF0YS1naXRodWJdIC50b29sdGlwJykuYXBwZW5kKG91dGh0bWwpO1xuICAgIFxuICAgICAgICAgICAgICAgIH0gLy8gZW5kIGVsc2Ugc3RhdGVtZW50XG4gICAgICAgICAgICB9KTsgLy8gZW5kIHJlcXVlc3RKU09OIEFqYXggY2FsbFxuICAgICAgICB9XG4gICAgXG4gICAgICAgIGZ1bmN0aW9uIHJlcXVlc3RKU09OKHVybCwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICQuYWpheCh7XG4gICAgICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uKHhocikge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsKG51bGwsIHhoci5yZXNwb25zZUpTT04pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9hZExhc3RmbSgpIHtcbiAgICAgICAgLy8gUG9iaWVyYSB1cmwgeiBocmVmYVxuICAgICAgICB2YXIgcHJvZmlsZVVybCA9ICQoJ2FbZGF0YS1sYXN0Zm1dJykuYXR0cignaHJlZicpO1xuICAgICAgICAvLyBPZHBvd2llZG5pbyBvYmNpbmEgZ28gZG8gdXNlcm5hbWVcbiAgICAgICAgdmFyIHVzZXJuYW1lID0gcHJvZmlsZVVybC5zdWJzdHIoMjcpO1xuICAgICAgICB2YXIgYmFzZVVybCA9ICdodHRwOi8vd3MuYXVkaW9zY3JvYmJsZXIuY29tLzIuMC8/bWV0aG9kPXVzZXIuZ2V0cmVjZW50dHJhY2tzJztcbiAgICAgICAgdmFyIGFwaV9rZXkgPSAnMjk5MDIwYzA2MmM0ODFmMDgzZWNkMDI3NmMzMTVlM2EnO1xuICAgIFxuICAgICAgICB2YXIgcmVxdWVzdFVybCA9IGJhc2VVcmwgKyAnJnVzZXI9JyArIHVzZXJuYW1lICsgJyZhcGlfa2V5PScgKyBhcGlfa2V5ICsgJyZmb3JtYXQ9anNvbic7XG4gICAgICAgIGNvbnNvbGUubG9nKHVzZXJuYW1lKTtcbiAgICAgICAgaWYgKCQoJ1tkYXRhLWxhc3RmbV0gLnRvb2x0aXAnKS5pcygnOmVtcHR5JykpIHtcbiAgICAgICAgICAgICQuZ2V0SlNPTihyZXF1ZXN0VXJsLCBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFydGlzdCA9IGRhdGEucmVjZW50dHJhY2tzLnRyYWNrWzBdLmFydGlzdFtcIiN0ZXh0XCJdO1xuICAgICAgICAgICAgICAgIHZhciBzb25nID0gZGF0YS5yZWNlbnR0cmFja3MudHJhY2tbMF1bXCJuYW1lXCJdO1xuICAgICAgICAgICAgICAgIHZhciBjb3ZlciA9IGRhdGEucmVjZW50dHJhY2tzLnRyYWNrWzBdLmltYWdlWzNdW1wiI3RleHRcIl07XG4gICAgICAgICAgICAgICAgaWYgKGNvdmVyID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdmVyID0gXCJodHRwOi8vaW1nMi1hay5sc3QuZm0vaS91LzE3NHMvNDEyOGE2ZWIyOWY5NDk0M2M5ZDIwNmMwOGU2MjU5MDQucG5nXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBvdXRodG1sID0gJzxkaXYgY2xhc3M9XCJsZlwiPjxpbWcgY2xhc3M9XCJsZl9fY292ZXJcIiBzcmM9XCInICsgY292ZXIgKyAnXCIvPjxkaXYgY2xhc3M9XCJsZl9fdHJhY2tJbmZvXCI+PHNwYW4gY2xhc3M9XCJsZl9fYXJ0aXN0XCI+JyArIGFydGlzdCArICc8L3NwYW4+PHNwYW4gY2xhc3M9XCJsZl9fc29uZ1wiPicgKyBzb25nICsgJzwvc3Bhbj48L2Rpdj48L2Rpdj4nO1xuICAgICAgICAgICAgICAgICQoJ1tkYXRhLWxhc3RmbV0gLnRvb2x0aXAnKS5hcHBlbmQob3V0aHRtbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICQoZnVuY3Rpb24oKSB7XG4gICAgICAgICQoJ2FbaHJlZio9XCIjXCJdOm5vdCgubGluay0tdGFiKScpLmNsaWNrKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL15cXC8vLCAnJykgPT0gdGhpcy5wYXRobmFtZS5yZXBsYWNlKC9eXFwvLywgJycpICYmIGxvY2F0aW9uLmhvc3RuYW1lID09IHRoaXMuaG9zdG5hbWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gJCh0aGlzLmhhc2gpO1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IHRhcmdldC5sZW5ndGggPyB0YXJnZXQgOiAkKCdbbmFtZT0nICsgdGhpcy5oYXNoLnNsaWNlKDEpICsgJ10nKTtcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IHRhcmdldC5vZmZzZXQoKS50b3BcbiAgICAgICAgICAgICAgICAgICAgfSwgODAwKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgYkxhenkgPSBuZXcgQmxhenkoe1xuICAgICAgICAgICAgb2Zmc2V0OiAyMCxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnLmJsYXp5JyxcbiAgICAgICAgICAgIGxvYWRJbnZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgYnJlYWtwb2ludHM6IFt7XG4gICAgICAgICAgICAgIHdpZHRoOiAzNjAsIC8vIE1heC13aWR0aFxuICAgICAgICAgICAgICBzcmM6ICdkYXRhLXNyYy1zbWFsbCdcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgICAkKGVsZW1lbnQpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCdsb2FkaW5nJywgNTAwKTtcbiAgICAgICAgICAgICAgdXBkYXRlQ291bnRlcigpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlbGVtZW50LCBtc2cpIHtcbiAgICAgICAgICAgICAgaWYgKG1zZyA9PT0gJ21pc3NpbmcnKSB7XG4gICAgICAgICAgICAgICAgJChlbGVtZW50KS5wYXJlbnQoKS5yZW1vdmVDbGFzcygnbG9hZGluZycsIDUwMCk7IC8vIERhdGEtc3JjIGlzIG1pc3NpbmdcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiYkxhenk6IGRhdGEtc3JjIGlzIG1pc3NpbmdcIik7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAobXNnID09PSAnaW52YWxpZCcpIHtcbiAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCdsb2FkaW5nJywgNTAwKTtcbiAgICAgICAgICAgICAgICAvLyBEYXRhLXNyYyBpcyBpbnZhbGlkXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcImJMYXp5OiBkYXRhLXNyYyBpcyBpbnZhbGlkXCIpO1xuICAgICAgICBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIG5vdCBuZWVkZWQsIG9ubHkgaGVyZSB0byBpbGx1c3RyYXRlIGFtb3VudCBvZiBsb2FkZWQgaW1hZ2VzXG4gICAgICAgICAgdmFyIGltYWdlTG9hZGVkID0gMDtcbiAgICAgICAgXG4gICAgICAgICAgZnVuY3Rpb24gdXBkYXRlQ291bnRlcigpIHtcbiAgICAgICAgICAgIGltYWdlTG9hZGVkKys7XG4gICAgICAgICAgICBjb25zb2xlLmluZm8oXCJiTGF6eTogSW1hZ2VzIGxvYWRlZDogJWRcIiwgaW1hZ2VMb2FkZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICAgLy8gdGFicyhiTGF6eSk7XG5cbiAgICAgICAgLy8vLz0gbWVtYmVyLmpzXG5cbiAgICAgICAgLy9Ta3JhY2EgaW1pb25hLCBieSBuaWUgd3ljaG9kemnFgnkgemEgYmxva2lcbiAgICAgICAgJCgnLm1lbWJlcmNhcmRfX25hbWUgYScpLmVhY2goZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgICAgIHZhciBhID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmIChhLmh0bWwoKS5sZW5ndGggPiAxNykge1xuICAgICAgICAgICAgICAgIHZhciBuYW1lID0gYS50ZXh0KCk7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2cobmFtZSk7XG4gICAgICAgICAgICAgICAgdmFyIHRyaW1tZWRfbmFtZSA9IG5hbWUuY2hhckF0KDApICsgXCIuIFwiICsgbmFtZS5zdWJzdHIobmFtZS5pbmRleE9mKCcgJykgKyAxKTtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0cmltbWVkX25hbWUpO1xuICAgICAgICAgICAgICAgIGEudGV4dCh0cmltbWVkX25hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChhLmh0bWwoKS5sZW5ndGggPiAxNykge1xuICAgICAgICAgICAgICAgICAgICBhLnBhcmVudCgpLmFkZENsYXNzKCdtZW1iZXJjYXJkX19uYW1lLS10b29Mb25nJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgICQoJy5tZW1iZXJjYXJkU21hbGxfX25hbWUgYScpLmVhY2goZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgICAgIHZhciBsZW5ndGggPSAkKHRoaXMpLmh0bWwoKS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAobGVuZ3RoID4gMTQpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmFtZSA9ICQodGhpcykudGV4dCgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKG5hbWUpO1xuICAgICAgICAgICAgICAgIHZhciB0cmltbWVkX25hbWUgPSBuYW1lLmNoYXJBdCgwKSArIFwiLiBcIiArIG5hbWUuc3Vic3RyKG5hbWUuaW5kZXhPZignICcpICsgMSk7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codHJpbW1lZF9uYW1lKTtcbiAgICAgICAgICAgICAgICAkKHRoaXMpLnRleHQodHJpbW1lZF9uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHJlY3J1aXRtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlY3J1aXRtZW50Jyk7XG4gICAgICAgICAgICBpZiAocmVjcnVpdG1lbnQpIHtcbiAgICAgICAgICAgICAgICByZWNydWl0bWVudC5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBcInVybCgnXCIgKyByZWNydWl0bWVudC5kYXRhc2V0LmJnICsgXCInKVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSgpO1xuXG4gICAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBhamF4X3VybCA9ICQoJy5nbG9iYWwnKS5hdHRyKCdkYXRhLWFqYXgtdXJsJyk7XG4gICAgICAgICAgICB2YXIgcG9zdF9vZmZzZXQgPSAwO1xuICAgICAgICAgICAgdmFyIGluY051bWJlciA9IDY7IC8vIGlsb8WbxIcgcG9zdMOzdyBkbyB6YcWCYWRvd2FuaWFcbiAgICAgICAgXG4gICAgICAgICAgICB2YXIgcHJvamVjdHMgPSAoZnVuY3Rpb24oc2V0UHJvamVjdHMpIHtcbiAgICAgICAgICAgICAgICB2YXIgbG9hZGVkO1xuICAgICAgICAgICAgICAgIHZhciB0b3RhbDtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpbmNMb2FkZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkID0gbG9hZGVkICsgaW5jTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBnZXRMb2FkZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvYWRlZDtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGVkOiBmdW5jdGlvbihzZXRQcm9qZWN0cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkID0gc2V0UHJvamVjdHM7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHNldFRvdGFsOiBmdW5jdGlvbihzZXRQcm9qZWN0cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgPSBzZXRQcm9qZWN0cztcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0VG90YWw6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB2YXIgbG9hZGluZ0J1dHRvbiA9IChmdW5jdGlvbihidXR0b24pe1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dTcGlubmVyOiBmdW5jdGlvbihidXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5odG1sKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzaG93Q2FwdGlvbjogZnVuY3Rpb24oYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24uaHRtbCgnWm9iYWN6IHN0YXJzemUnKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgaGlkZTogZnVuY3Rpb24oYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIFxuICAgICAgICAgICAgJCgnI2xvYWRfbW9yZV9wb3N0cycpLm9uKCdjbGljaycsIGxvYWRNb3JlKTtcbiAgICAgICAgICAgICQoJyNsb2FkX21vcmUnKS5vbignY2xpY2snLCBsb2FkUHJvamVjdHMpO1xuICAgICAgICBcbiAgICAgICAgICAgIGZ1bmN0aW9uIGxvYWRNb3JlKCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDbGlja2VkIGxvYWRfbW9yZScpO1xuICAgICAgICAgICAgICAgICQodGhpcykuaHRtbCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBwb3N0X29mZnNldCA9IHBhcnNlSW50KHBvc3Rfb2Zmc2V0KSArIDY7XG4gICAgICAgICAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBhamF4X3VybCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdsb2FkX3Bvc3RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rfb2Zmc2V0OiBwb3N0X29mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2xvYWRfbW9yZV9wb3N0cycpLmh0bWwoJ1pvYmFjeiBzdGFyc3plJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcjcG9zdHMgLmNhcmRzV3JhcHBlcicpLmFwcGVuZChkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnQWpheDogT0snKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJMYXp5LnJldmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcmRFeGNlcnB0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICAgICBmdW5jdGlvbiBsb2FkUHJvamVjdHMoKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoaXNQYXJlbnQgPSAkKHRoaXMpLnBhcmVudCgpO1xuICAgICAgICAgICAgICAgIC8vIHVzdGF3aWEgY2HFgmtvd2l0xIUgbGljemLEmSBkYW55Y2ggcHJvamVrdMOzd1xuICAgICAgICAgICAgICAgIHByb2plY3RzLnNldFRvdGFsKHRoaXNQYXJlbnQuYXR0cignZGF0YS10b3RhbCcpKTtcbiAgICAgICAgICAgICAgICAvLyBqZcWbbGkgamVzemN6ZSBuaWUgcG9iaWVyYW5vIGFqYXhlbSBwcm9qZWt0w7N3LCB0byB1c3Rhd2lhIHdhcnRvxZvEh1xuICAgICAgICAgICAgICAgIC8vIHLDs3duxIUganXFvCB3ecWbd2lldGxvbnljaFxuICAgICAgICAgICAgICAgIGlmICghcHJvamVjdHMuZ2V0TG9hZGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdHMuc2V0TG9hZGVkKHRoaXNQYXJlbnQuZmluZCgnLmNhcmQnKS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQWxyZWFkeTonLCBwcm9qZWN0cy5nZXRMb2FkZWQoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBwcm9qZWN0c19zdGF0dXMgPSB0aGlzUGFyZW50LmF0dHIoJ2RhdGEtcHJvamVjdHMtc3RhdHVzJyk7XG4gICAgICAgICAgICAgICAgcG9zdF9vZmZzZXQgPSBwYXJzZUludChwb3N0X29mZnNldCkgKyBpbmNOdW1iZXI7XG4gICAgICAgIFxuICAgICAgICAgICAgICAgIGlmIChwcm9qZWN0cy5nZXRUb3RhbCgpID4gcHJvamVjdHMuZ2V0TG9hZGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZ0J1dHRvbi5zaG93U3Bpbm5lcigkKCcjbG9hZF9tb3JlJykpO1xuICAgICAgICAgICAgICAgICAgICAkLmFqYXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBhamF4X3VybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdsb2FkX3Byb2plY3RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X29mZnNldDogcG9zdF9vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdHNfc3RhdHVzOiBwcm9qZWN0c19zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNQYXJlbnQuY2hpbGRyZW4oJy5jYXJkc1dyYXBwZXInKS5hcHBlbmQoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYkxhenkucmV2YWxpZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmRFeGNlcnB0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ0J1dHRvbi5zaG93Q2FwdGlvbigkKCcjbG9hZF9tb3JlJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RzLmluY0xvYWRlZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnQWpheDogTG9hZGVkIG1vcmUgJXMgcHJvamVjdHM6ICVkLyVkJywgcHJvamVjdHNfc3RhdHVzLCBwcm9qZWN0cy5nZXRMb2FkZWQoKSwgcHJvamVjdHMuZ2V0VG90YWwoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb2plY3RzLmdldFRvdGFsKCkgPD0gcHJvamVjdHMuZ2V0TG9hZGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ0J1dHRvbi5oaWRlKCQoJyNsb2FkX21vcmUnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KSgpO1xuXG4gICAgICAgIGZ1bmN0aW9uIGluaXRUb3BiYXIoKSB7XG4gICAgICAgICAgICAkKCcudG9wYmFyV3JhcHBlcicpLnNjcm9sbHVwYmFyKHtcbiAgICAgICAgICAgICAgICBlbnRlclZpZXdwb3J0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJCgnLnRvcGJhcldyYXBwZXInKS5hZGRDbGFzcygndG9wYmFyV3JhcHBlci0tdmlzaWJsZScpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZnVsbHlFbnRlclZpZXdwb3J0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJCgnI2xhc3QtZXZlbnQnKS50ZXh0KCdmdWxseUVudGVyVmlld3BvcnQnKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4aXRWaWV3cG9ydDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICQoJyNsYXN0LWV2ZW50JykudGV4dCgnZXhpdFZpZXdwb3J0Jyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwYXJ0aWFsbHlFeGl0Vmlld3BvcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAkKCcjbGFzdC1ldmVudCcpLnRleHQoJ3BhcnRpYWxseUV4aXRWaWV3cG9ydCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICAgICBpbml0VG9wYmFyKCk7XG4gICAgICAgIFxuICAgICAgICBpZiAoJCh3aW5kb3cpLndpZHRoKCkgPCA3NTApIHtcbiAgICAgICAgICAgICQuc2Nyb2xsdXBiYXIuZGVzdHJveSgnLnRvcGJhcldyYXBwZXInKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgLy8gZGlkU2Nyb2xsID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBzdCA9ICQodGhpcykuc2Nyb2xsVG9wKCk7XG4gICAgICAgICAgICAvLyBHZHkgamVzdGXFm215IG5hIHNhbWVqIGfDs3J6ZSwgdG8gcG9rYXp5amVteSBjYcWCZSBsb2dvXG4gICAgICAgICAgICBpZiAoc3QgPT09IDApIHtcbiAgICAgICAgICAgICAgICAkKCcudG9wYmFyV3JhcHBlcicpLnJlbW92ZUNsYXNzKCd0b3BiYXJXcmFwcGVyLS12aXNpYmxlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciB0YWJzID0gKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRUYWI7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGluaXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBwb2JpZXJhbXkgaHJlZlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFiID0gJCgnLnRhYnNNZW51X19pdGVtLS1jdXJyZW50IC5saW5rLS10YWInKS5hdHRyKCdocmVmJyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGhyZWYgamVzdCBqZWRub2N6ZcWbbmllIGlkIG9kcG93aWVkbmllZ28gdGFidSwga3TDs3J5IHd5xZt3aWV0bGFteVxuICAgICAgICAgICAgICAgICAgICAkKGN1cnJlbnRUYWIpLmFkZENsYXNzKCd0YWJfX2NvbnRlbnQtLXZpc2libGUnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gxYJhZHVqZW15IG9icmF6a2lcbiAgICAgICAgICAgICAgICAgICAgYkxhenkubG9hZCgkKFwiLmJsYXp5XCIsIGN1cnJlbnRUYWIpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCdUYWJzIGluaXRpYXRlZDonLCBjdXJyZW50VGFiKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gWiB0eW0gI3RhYnNSZXNldCwgdG8gdGFraSBoYWNrLiBXeWtvcnp5c3R5d2FueSBkbGF0ZWdvLCDFvGVcbiAgICAgICAgICAgICAgICAgICAgLy8gcG8ga2xpa25pxJljaXUgY2hvd2FqxIUgc2nEmSB3c3p5c3RraWUgdGFieSwgb3Byw7NjeiB0ZWogeiBvZHBvd2llZG5pbSBpZFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFiID0gJCgnI3RhYnNSZXNldCAubGluay0tdGFiJykuYXR0cignaHJlZicpO1xuICAgICAgICAgICAgICAgICAgICAkKGN1cnJlbnRUYWIpLnJlbW92ZUNsYXNzKFwidGFiX19jb250ZW50LS1oaWRkZW5cIikuYWRkQ2xhc3MoXCJ0YWJfX2NvbnRlbnQtLXZpc2libGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnVGFicyBpbml0aWF0ZWQ6JywgY3VycmVudFRhYik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkoKTtcbiAgICAgICAgdGFicy5pbml0KCk7XG4gICAgICAgIFxuICAgICAgICAkKFwiLmdsb2JhbFwiKS5vbignY2xpY2snLCAnLmxpbmstLXRhYicsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgICAvLyB3ecWCxIVjemEgZG9tecWbbG5lIHByemVqxZtjaWUgbmEgYWRyZXMgbGlua3VcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAvLyBkb2RhamUga2xhc8SZIGRvIDxsaT5cbiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuYWRkQ2xhc3MoXCJ0YWJzTWVudV9faXRlbS0tY3VycmVudFwiKTtcbiAgICAgICAgICAgIC8vIHVzdXdhIGtsYXPEmSB6IDxsaT5cbiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuc2libGluZ3MoKS5yZW1vdmVDbGFzcyhcInRhYnNNZW51X19pdGVtLS1jdXJyZW50XCIpO1xuICAgICAgICAgICAgLy8gcG9iaWVyYW15IGlkIHogaHJlZnVcbiAgICAgICAgICAgIHZhciB0YWIgPSAkKHRoaXMpLmF0dHIoXCJocmVmXCIpO1xuICAgICAgICAgICAgLy8gamXFm2xpIGJsb2sgbmllIG1hIHRha2llZ28gaWQsIHRvIGNob3dhbXkgZ29cbiAgICAgICAgICAgICQoXCIudGFiX19jb250ZW50XCIpLm5vdCh0YWIpLmFkZENsYXNzKFwidGFiX19jb250ZW50LS1oaWRkZW5cIikucmVtb3ZlQ2xhc3MoXCJ0YWJfX2NvbnRlbnQtLXZpc2libGVcIik7XG4gICAgICAgICAgICAvLyBhIGplxZtsaSBtYSwgdG8gcG9rYXp1amVteVxuICAgICAgICAgICAgJCh0YWIpLnJlbW92ZUNsYXNzKFwidGFiX19jb250ZW50LS1oaWRkZW5cIikuYWRkQ2xhc3MoXCJ0YWJfX2NvbnRlbnQtLXZpc2libGVcIik7XG4gICAgICAgICAgICAvLyDFgmFkdWplbXkgb2JyYXpraSB3IGJsb2t1IHogb2Rwb3dpZWRuaW0gaWRcbiAgICAgICAgICAgIGJMYXp5LmxvYWQoJChcIi5ibGF6eVwiLCB0YWIpLCB0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gaHR0cDovL2NvZGVwZW4uaW8vamFrdWJ0dXJza3kvcGVuL3ZFd1pvcFxuICAgICAgICBcdCQuZm4ualF1ZXJ5U2ltcGxlQ291bnRlciA9IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuICAgICAgICBcdCAgICB2YXIgc2V0dGluZ3MgPSAkLmV4dGVuZCh7XG4gICAgICAgIFx0ICAgICAgICBzdGFydDogIDAsXG4gICAgICAgIFx0ICAgICAgICBlbmQ6ICAgIDEwMCxcbiAgICAgICAgXHQgICAgICAgIGVhc2luZzogJ3N3aW5nJyxcbiAgICAgICAgXHQgICAgICAgIGR1cmF0aW9uOiA0MDAsXG4gICAgICAgIFx0ICAgICAgICBjb21wbGV0ZTogJydcbiAgICAgICAgXHQgICAgfSwgb3B0aW9ucyApO1xuICAgICAgICBcbiAgICAgICAgXHQgICAgdmFyIHRoaXNFbGVtZW50ID0gJCh0aGlzKTtcbiAgICAgICAgXG4gICAgICAgIFx0ICAgICQoe2NvdW50OiBzZXR0aW5ncy5zdGFydH0pLmFuaW1hdGUoe2NvdW50OiBzZXR0aW5ncy5lbmR9LCB7XG4gICAgICAgIFx0XHRcdGR1cmF0aW9uOiBzZXR0aW5ncy5kdXJhdGlvbixcbiAgICAgICAgXHRcdFx0ZWFzaW5nOiBzZXR0aW5ncy5lYXNpbmcsXG4gICAgICAgIFx0XHRcdHN0ZXA6IGZ1bmN0aW9uKCkge1xuICAgICAgICBcdFx0XHRcdHZhciBtYXRoQ291bnQgPSBNYXRoLmNlaWwodGhpcy5jb3VudCk7XG4gICAgICAgIFx0XHRcdFx0dGhpc0VsZW1lbnQuY2hpbGRyZW4oJy5jb3VudGVyc19fY291bnQnKS50ZXh0KG1hdGhDb3VudCk7XG4gICAgICAgIFx0XHRcdH0sXG4gICAgICAgIFx0XHRcdGNvbXBsZXRlOiBzZXR0aW5ncy5jb21wbGV0ZVxuICAgICAgICBcdFx0fSk7XG4gICAgICAgIFx0fTtcbiAgICAgICAgXG4gICAgICAgIC8vIHZhciBmaW5pc2hlZE51bWJlciA9ICQoJyNmaW5pc2hlZCcpLmRhdGEoJ2ZpbmlzaGVkJyk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGZpbmlzaGVkTnVtYmVyKTtcbiAgICAgICAgLy8gJCgnI2ZpbmlzaGVkJykualF1ZXJ5U2ltcGxlQ291bnRlcih7ZW5kOiBmaW5pc2hlZE51bWJlciwgZHVyYXRpb246IDMwMDB9KTtcbiAgICAgICAgLy8gJCgnI251bWJlcjInKS5qUXVlcnlTaW1wbGVDb3VudGVyKHtlbmQ6IDU1LGR1cmF0aW9uOiAzMDAwfSk7XG4gICAgICAgIC8vICQoJyNudW1iZXIzJykualF1ZXJ5U2ltcGxlQ291bnRlcih7ZW5kOiAzNTksZHVyYXRpb246IDIwMDB9KTtcbiAgICAgICAgLy8gJCgnI251bWJlcjQnKS5qUXVlcnlTaW1wbGVDb3VudGVyKHtlbmQ6IDI0NixkdXJhdGlvbjogMjUwMH0pO1xuXG4gICAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vbWFyY2luLmxhYmVyLnBsLzIwMTQvMDkvb2RtaWFuYS1saWN6ZWJuaWtvdy13LWphdmFzY3JpcHQvXG4gICAgICAgICAgICB2YXIgbnVtID0gZnVuY3Rpb24odmFsdWUsIG51bWVyYWxzLCB3b3ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdmFyIHQwID0gdmFsdWUgJSAxMCxcbiAgICAgICAgICAgICAgICAgICAgdDEgPSB2YWx1ZSAlIDEwMCxcbiAgICAgICAgICAgICAgICAgICAgdm8gPSBbXTtcbiAgICAgICAgICAgICAgICBpZiAod292YWx1ZSAhPT0gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgdm8ucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSAxICYmIG51bWVyYWxzWzFdKVxuICAgICAgICAgICAgICAgICAgICB2by5wdXNoKG51bWVyYWxzWzFdKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICgodmFsdWUgPT09IDAgfHwgKHQwID49IDAgJiYgdDAgPD0gMSkgfHwgKHQwID49IDUgJiYgdDAgPD0gOSkgfHwgKHQxID4gMTAgJiYgdDEgPCAyMCkpICYmIG51bWVyYWxzWzBdKVxuICAgICAgICAgICAgICAgICAgICB2by5wdXNoKG51bWVyYWxzWzBdKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICgoKHQxIDwgMTAgfHwgdDEgPiAyMCkgJiYgdDAgPj0gMiAmJiB0MCA8PSA0KSAmJiBudW1lcmFsc1syXSlcbiAgICAgICAgICAgICAgICAgICAgdm8ucHVzaChudW1lcmFsc1syXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZvWzFdO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgICAgICAkKCcuY291bnRlcicpLmVhY2goZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gJCh0aGlzKS5hdHRyKCdpZCcpO1xuICAgICAgICAgICAgICAgIHZhciBjb3VudCA9IHBhcnNlSW50KCQodGhpcykuY2hpbGRyZW4oJ2EnKS5odG1sKCkpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvdW50LCBzdGF0dXMpO1xuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdmaW5pc2hlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCcuY291bnRlcl9fbGFiZWwnKS5odG1sKG51bShjb3VudCwgW1wiUHJvamVrdMOzdyB1a2/FhGN6b255Y2hcIiwgXCJQcm9qZWt0IHVrb8WEY3pvbnlcIiwgXCJQcm9qZWt0eSB1a2/FhGN6b25lXCJdKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCcuY291bnRlcl9fbGFiZWwnKS5odG1sKG51bShjb3VudCwgW1wiUHJvamVrdMOzdyByZWFsaXpvd2FueWNoXCIsIFwiUHJvamVrdCByZWFsaXpvd2FueVwiLCBcIlByb2pla3R5IHJlYWxpem93YW5lXCJdKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkKCcuY291bnRlcnNfX2NvdW50ZXInKS5lYWNoKGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9ICQodGhpcykuYXR0cignaWQnKTtcbiAgICAgICAgICAgICAgICB2YXIgY291bnQgPSBwYXJzZUludCgkKHRoaXMpLmNoaWxkcmVuKCcuY291bnRlcnNfX2NvdW50JykuZGF0YShzdGF0dXMpKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjb3VudCwgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09PSAnZmluaXNoZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLmNvdW50ZXJzX19sYWJlbCcpLmh0bWwobnVtKGNvdW50LCBbXCJQcm9qZWt0w7N3IHVrb8WEY3pvbnljaFwiLCBcIlByb2pla3QgdWtvxYRjem9ueVwiLCBcIlByb2pla3R5IHVrb8WEY3pvbmVcIl0pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gJ2luLXByb2dyZXNzJyl7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLmNvdW50ZXJzX19sYWJlbCcpLmh0bWwobnVtKGNvdW50LCBbXCJQcm9qZWt0w7N3IHJlYWxpem93YW55Y2hcIiwgXCJQcm9qZWt0IHJlYWxpem93YW55XCIsIFwiUHJvamVrdHkgcmVhbGl6b3dhbmVcIl0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJCgnIycrc3RhdHVzKS5qUXVlcnlTaW1wbGVDb3VudGVyKHtlbmQ6IGNvdW50LCBkdXJhdGlvbjogMjUwMH0pO1xuICAgICAgICBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgfSkoKTtcblxuICAgICAgICAoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAvLyBhbmltYWNqYSB6ZSB6bWllbmlhasSFY3ltIHNpxJkgZ3JhZGllbnRlbSBvYmNpxIXFvGEgQ1BVLFxuICAgICAgICAgICAgLy8gd2nEmWMgd8WCxIVjemFtIGrEhSB0eWxrbywgZ2R5IHXFvHl0a293bmlrIGRvc3JvbHVqZSBkbyBrb8WEY2Egc3Ryb255XG4gICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gJChkb2N1bWVudCkuaGVpZ2h0KCkgLSAkKHdpbmRvdykuaGVpZ2h0KCkgLSA1MDApIHtcbiAgICAgICAgICAgICAgICAgICQoJy5mb290ZXItd3JhcHBlcicpLmFkZENsYXNzKCdmb290ZXItd3JhcHBlci0tYW5pbWF0ZScpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgJCgnLmZvb3Rlci13cmFwcGVyJykucmVtb3ZlQ2xhc3MoJ2Zvb3Rlci13cmFwcGVyLS1hbmltYXRlJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSgpO1xuXG4gICAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICQoXCIuaGVyb19fbWlkZGxlVGl0bGVcIikub25lKCdhbmltYXRpb25lbmQgd2Via2l0QW5pbWF0aW9uRW5kIG9BbmltYXRpb25FbmQgb2FuaW1hdGlvbmVuZCBNU0FuaW1hdGlvbkVuZCcsXG4gICAgICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdoZXJvX19taWRkbGVUaXRsZS0tYW5pbWF0aW9uJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICQoXCIuaGVyb19fbGVmdFRpdGxlXCIpLm9uZSgnYW5pbWF0aW9uZW5kIHdlYmtpdEFuaW1hdGlvbkVuZCBvQW5pbWF0aW9uRW5kIG9hbmltYXRpb25lbmQgTVNBbmltYXRpb25FbmQnLFxuICAgICAgICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnaGVyb19fbGVmdFRpdGxlLS1hbmltYXRpb24nKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJChcIi5oZXJvX19yaWdodFRpdGxlXCIpLm9uZSgnYW5pbWF0aW9uZW5kIHdlYmtpdEFuaW1hdGlvbkVuZCBvQW5pbWF0aW9uRW5kIG9hbmltYXRpb25lbmQgTVNBbmltYXRpb25FbmQnLFxuICAgICAgICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnaGVyb19fcmlnaHRUaXRsZS0tYW5pbWF0aW9uJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgICAgICAgJCgnLmhlcm9fX2xlZnQnKS5ob3ZlcihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAkKCcuaGVyb19fbWlkZGxlJykuYWRkQ2xhc3MoJ2hlcm9fX21pZGRsZS0tY29sbGFwc2VkTCcpO1xuICAgICAgICAgICAgICAgICQoJy5oZXJvX19taWRkbGVJbWcnKS5hZGRDbGFzcygnaGVyb19fbWlkZGxlSW1nLS1vcGFjaXR5NjAnKTtcbiAgICAgICAgICAgICAgICAkKCcuaGVyb19fbWlkZGxlVGl0bGUnKS5hZGRDbGFzcygnaGVyb19fbWlkZGxlVGl0bGUtLW9wYWNpdHkwJyk7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnaGVyb19fbGVmdC0tbXZSJyk7XG4gICAgICAgICAgICB9LCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAkKCcuaGVyb19fbWlkZGxlJykucmVtb3ZlQ2xhc3MoJ2hlcm9fX21pZGRsZS0tY29sbGFwc2VkTCcpO1xuICAgICAgICAgICAgICAgICQoJy5oZXJvX19taWRkbGVJbWcnKS5yZW1vdmVDbGFzcygnaGVyb19fbWlkZGxlSW1nLS1vcGFjaXR5NjAnKTtcbiAgICAgICAgICAgICAgICAkKCcuaGVyb19fbWlkZGxlVGl0bGUnKS5yZW1vdmVDbGFzcygnaGVyb19fbWlkZGxlVGl0bGUtLW9wYWNpdHkwJyk7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnaGVyb19fbGVmdC0tbXZSJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICQoJy5oZXJvX19yaWdodCcpLmhvdmVyKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICQoJy5oZXJvX19taWRkbGUnKS5hZGRDbGFzcygnaGVyb19fbWlkZGxlLS1jb2xsYXBzZWRSJyk7XG4gICAgICAgICAgICAgICAgJCgnLmhlcm9fX21pZGRsZUltZycpLmFkZENsYXNzKCdoZXJvX19taWRkbGVJbWctLW9wYWNpdHk2MCcpO1xuICAgICAgICAgICAgICAgICQoJy5oZXJvX19taWRkbGVUaXRsZScpLmFkZENsYXNzKCdoZXJvX19taWRkbGVUaXRsZS0tb3BhY2l0eTAnKTtcbiAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdoZXJvX19yaWdodC0tbXZMJyk7XG4gICAgICAgIFxuICAgICAgICAgICAgfSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgJCgnLmhlcm9fX21pZGRsZScpLnJlbW92ZUNsYXNzKCdoZXJvX19taWRkbGUtLWNvbGxhcHNlZFInKTtcbiAgICAgICAgICAgICAgICAkKCcuaGVyb19fbWlkZGxlSW1nJykucmVtb3ZlQ2xhc3MoJ2hlcm9fX21pZGRsZUltZy0tb3BhY2l0eTYwJyk7XG4gICAgICAgICAgICAgICAgJCgnLmhlcm9fX21pZGRsZVRpdGxlJykucmVtb3ZlQ2xhc3MoJ2hlcm9fX21pZGRsZVRpdGxlLS1vcGFjaXR5MCcpO1xuICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2hlcm9fX3JpZ2h0LS1tdkwnKTtcbiAgICAgICAgXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpO1xuICAgICAgICAgICAgdmFyIHdpZHRoID0gJCh3aW5kb3cpLndpZHRoKCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhoZWlnaHQpO1xuICAgICAgICAgICAgaWYod2lkdGg8NzUwKSB7XG4gICAgICAgICAgICAgICAgdmFyIGhlcm9NaWRkbGVJbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdoZXJvX19taWRkbGVJbWcnKVswXTtcbiAgICAgICAgICAgICAgICB2YXIgaGVyb01pZGRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2hlcm9fX21pZGRsZScpWzBdO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGhlcm9NaWRkbGVJbWcpO1xuICAgICAgICAgICAgICAgIGhlcm9NaWRkbGVJbWcuaGVpZ2h0PSBoZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgLy8gVGFrIHcgb2fDs2xlLCB0byBva25vIG1vZGFsbmUgbmFsZcW8eSBvZGR6aWVsacSHIG9kXG4gICAgICAgIC8vIFNQT05TT1LDk1cgaSBXU1DDk8WBUFJBQ1ksIHpyb2JpxIcgbmllemFsZcW8bnltIGVsZW1lbnRlbVxuICAgICAgICBcbiAgICAgICAgKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgJCgnLmJyYW5kJykuZWFjaChmdW5jdGlvbihpbmRleCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2JyYW5kLWRlc2MnKS5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLmJyYW5kX19tb3JlJykucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAgICAgJCgnLmJyYW5kX19tb3JlJykuYmluZChcImNsaWNrXCIsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdmFyIGJyYW5kID0gJCh0aGlzKS5wYXJlbnRzKCcuYnJhbmQnKTtcbiAgICAgICAgICAgICAgICB2YXIgYnJhbmROYW1lID0gYnJhbmQuZGF0YSgnYnJhbmQtbmFtZScpO1xuICAgICAgICAgICAgICAgIHZhciBicmFuZExpbmsgPSBicmFuZC5kYXRhKCdicmFuZC1saW5rJyk7XG4gICAgICAgICAgICAgICAgdmFyIGJyYW5kRGVzYyA9IGJyYW5kLmRhdGEoJ2JyYW5kLWRlc2MnKTtcbiAgICAgICAgICAgICAgICB2YXIgYnJhbmRMb2dvID0gYnJhbmQuZmluZCgnLmJyYW5kX19sb2dvJykuYXR0cignc3JjJyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYnJhbmQsIGJyYW5kTmFtZSwgYnJhbmRMaW5rLCBicmFuZERlc2MsIGJyYW5kTG9nbyk7XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICQoJy5tb2RhbF9fdGl0bGUnKS5odG1sKGJyYW5kTmFtZSk7XG4gICAgICAgICAgICAgICAgJCgnLm1vZGFsX19jb250ZW50IGEnKS5odG1sKGJyYW5kTGluaykuYXR0cignaHJlZicsIGJyYW5kTGluayk7XG4gICAgICAgICAgICAgICAgJCgnLm1vZGFsX19jb250ZW50IHAnKS5odG1sKGJyYW5kRGVzYyk7XG4gICAgICAgICAgICAgICAgJCgnLm1vZGFsX19jb250ZW50IHAnKS5odG1sKGJyYW5kRGVzYyk7XG4gICAgICAgICAgICAgICAgJCgnLm1vZGFsX19pbWFnZScpLmF0dHIoJ3NyYycsIGJyYW5kTG9nbyk7XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICQoXCJodG1sXCIpLmFkZENsYXNzKFwiZG9Ob3RTY3JvbGxcIik7XG4gICAgICAgICAgICAgICAgJCgnLm1vZGFsJykuYWRkQ2xhc3MoJ3Zpc2libGUnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgICAgIC8vT24gY2xpY2tpbmcgdGhlIG1vZGFsIGJhY2tncm91bmRcbiAgICAgICAgICAgICQoJ1tkYXRhLW1vZGFsLWNsb3NlXScpLmJpbmQoXCJjbGlja1wiLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgJCgnLm1vZGFsJykucmVtb3ZlQ2xhc3MoJ3Zpc2libGUnKTtcbiAgICAgICAgICAgICAgICAkKFwiaHRtbFwiKS5yZW1vdmVDbGFzcyhcImRvTm90U2Nyb2xsXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICB9KSgpO1xuXG4gICAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIFNsaWRlciA9ICQoJyNzbGlkZXInKS5Td2lwZSh7XG4gICAgICAgICAgICAgIGF1dG86IDAsXG4gICAgICAgICAgICAgIGNvbnRpbnVvdXM6IHRydWUsXG4gICAgICAgICAgICB9KS5kYXRhKCdTd2lwZScpO1xuICAgICAgICAgICAgaWYgKFNsaWRlcikge1xuICAgICAgICAgICAgICAkKCcuc3dpcGVfX25leHQnKS5vbignY2xpY2snLCBTbGlkZXIubmV4dCk7XG4gICAgICAgICAgICAgICQoJy5zd2lwZV9fcHJldicpLm9uKCdjbGljaycsIFNsaWRlci5wcmV2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgdmFyIHR1ID0gMTtcbiAgICAgICAgdmFyIGZpcnN0UnVuID0gZmFsc2U7XG4gICAgICAgIGNvbnNvbGUubG9nKCd1bHRyb24nKTtcbiAgICAgICAgXG4gICAgICAgICQuYWpheFNldHVwKHtcbiAgICAgICAgICAgIGJlZm9yZVNlbmQ6IGZ1bmN0aW9uKHhocikge1xuICAgICAgICAgICAgICAgIGlmICh4aHIub3ZlcnJpZGVNaW1lVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICB4aHIub3ZlcnJpZGVNaW1lVHlwZShcImFwcGxpY2F0aW9uL2pzb25cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZV90aW1lKCkge1xuICAgICAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogXCJqc29uXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJHRVRcIixcbiAgICAgICAgICAgICAgICB1cmw6IFwiLi91bHRyb24vZGF0YS5qc29uXCIsXG4gICAgICAgICAgICAgICAgY2FjaGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxhdGVzdCA9IGxhdGVzdERhdGEoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdFJ1biA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5zdGF0ZScpLmh0bWwoaXNPcGVuKGxhdGVzdC5zdGF0ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RSdW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobGF0ZXN0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhsYXRlc3QpO1xuICAgICAgICAgICAgICAgICAgICAkKCcuZGVzYycpLmZhZGVPdXQoMCwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFqbSA9IE1hdGgucm91bmQobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWptIC0gbGF0ZXN0LnRpbWUgPCA2MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5kZXNjJykuaHRtbCgodGFqbSAtIGxhdGVzdC50aW1lKSArIFwicyBhZ29cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRham0gLSBsYXRlc3QudGltZSA8IDM2MDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWludXRlcyA9IHBhcnNlSW50KCh0YWptIC0gbGF0ZXN0LnRpbWUpIC8gNjApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5kZXNjJykuaHRtbCgkbWludXRlcyArIFwibSBhZ29cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRob3VycyA9IHBhcnNlSW50KCh0YWptIC0gbGF0ZXN0LnRpbWUpIC8gMzYwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1pbnV0ZXMgPSBwYXJzZUludCgodGFqbSAtIGxhdGVzdC50aW1lKSAvIDYwKSAtICRob3VycyAqIDYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5kZXNjJykuaHRtbCgkaG91cnMgKyBcImggXCIgKyAkbWludXRlcyArIFwibSBhZ29cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuc3RhdGUnKS5odG1sKGlzT3BlbihsYXRlc3Quc3RhdGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICQoJy5kZXNjJykuZmFkZUluKDApO1xuICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZV90aW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIHR1ICogMTAwMCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZSwgeGhyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJcIik7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfdGltZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCB0dSAqIDEwMDApO1xuICAgICAgICBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVfdGltZSgpO1xuICAgICAgICBcbiAgICAgICAgZnVuY3Rpb24gaXNPcGVuKGRhdGEpIHtcbiAgICAgICAgICAgIGlmKGRhdGEgPT09IFwiMVwiKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJPdHdhcnRlXCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIlphbWtuacSZdGVcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBsYXRlc3REYXRhKGRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnNsaWNlKC0xKVswXTtcbiAgICAgICAgfVxuXG4gICAgfSk7XG5cbiAgICAvLyBQcmV6ZXMgemF3c3plIG5hIHBpZXJ3c3p5bSBtaWVqc2N1IC8vXG4gICAgJCgnLm1lbWJlcmNhcmQjcHJlc2lkZW50JykuaW5zZXJ0QmVmb3JlKCcjY3VycmVudF9tZW1iZXJzIC5jYXJkc1dyYXBwZXIgZGl2OmVxKDApJyk7XG5cbiAgICAvLyBEb2RhamUgZG8gPGE+IGtsYXPEmSBcImxpbmtcIlxuICAgICQoJy5wcm9qZWN0X19jb250ZW50IGEnKS5hZGRDbGFzcygnbGluaycpO1xuXG59KTsiXSwiZmlsZSI6Im1haW4ubWluLmpzIn0= +!function(t){"use strict";var e;t.scrollupbar=function(o,n){function a(){return s.scrollTop()<=o.offset().top}function i(){return s.scrollTop()d&&(t.scrollupbar.isFullyInViewport=!1,n.partiallyExitViewport(),o.slideUp(function(){t.scrollupbar.isInViewport=!1,n.exitViewport()})),d=e})):s.on("scroll.scrollupbar",function(){var e=s.scrollTop(),u=o.outerHeight();e<0||e>l.height()-s.height()||(r&&clearTimeout(r),e=c&&(o.css("top",d-u),t.scrollupbar.isInViewport=!0,n.enterViewport()),a()&&(e>=c?o.css({position:"fixed",top:0}):o.css({position:"absolute",top:p}),t.scrollupbar.isFullyInViewport||(t.scrollupbar.isFullyInViewport=!0,n.fullyEnterViewport())),r=setTimeout(function(){a()||(o.css({position:"fixed",top:o.offset().top-e}),o.animate({top:0},100,function(){t.scrollupbar.isFullyInViewport=!0,n.fullyEnterViewport()}))},400)):e>d&&(t.scrollupbar.isFullyInViewport&&(o.css({position:"absolute",top:d>c?d:p}),a()||(t.scrollupbar.isFullyInViewport=!1,n.partiallyExitViewport())),t.scrollupbar.isInViewport&&!i()&&(t.scrollupbar.isInViewport=!1,n.exitViewport()),r=setTimeout(function(){i()&&e-u>=c&&o.animate({top:e-u},100,function(){t.scrollupbar.isInViewport=!1,n.exitViewport()})},400)),d=e)}),e=function(){s.off(".scrollupbar"),o.css({position:"absolute",top:p})},o},t.scrollupbar.destroy=function(){if(e)return e()},t.fn.scrollupbar=function(e){return t.scrollupbar(this,e)}}(jQuery),jQuery(function(t){function e(){t(".card__excerpt").text(function(t,e){return e.substr(0,125)+"…"})}function o(){function e(e,o){t.ajax({url:e,complete:function(t){o.call(null,t.responseJSON)}})}var o=t("a[data-github]").attr("href"),n=o.substr(19),a="https://api.github.com/users/"+n;t("[data-github] .tooltip").is(":empty")&&e(a,function(e){if("Nie znaleziono"===e.message||""===n)t("[data-github] .tooltip").html("

    Brak informacji

    ");else{n=e.login;var o=e.html_url,a=e.public_repos,i=e.avatar_url,r='

    @'+n+"

    ";r=r+'Repozytoriów: '+a+"
    ",t("[data-github] .tooltip").append(r)}})}function n(){var e=t("a[data-lastfm]").attr("href"),o=e.substr(27),n="http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks",a="299020c062c481f083ecd0276c315e3a",i=n+"&user="+o+"&api_key="+a+"&format=json";void 0,t("[data-lastfm] .tooltip").is(":empty")&&t.getJSON(i,function(e){var o=e.recenttracks.track[0].artist["#text"],n=e.recenttracks.track[0].name,a=e.recenttracks.track[0].image[3]["#text"];""===a&&(a="http://img2-ak.lst.fm/i/u/174s/4128a6eb29f94943c9d206c08e625904.png");var i='
    '+o+''+n+"
    ";t("[data-lastfm] .tooltip").append(i)})}var a={$dropys:null,openClass:"open",selectClass:"selected",init:function(){var e=this;e.$dropys=t(".dropy"),e.eventHandler()},eventHandler:function(){var e=this;e.$dropys.find(".dropy__title").click(function(){e.$dropys.removeClass(e.openClass),t(this).parents(".dropy").addClass(e.openClass)}),e.$dropys.find(".dropy__content ul li a").click(function(){var o=t(this),n=o.parents(".dropy"),a=n.find("input"),i=t(this).parents(".dropy").find(".dropy__title span");n.find(".dropy__content a").each(function(){t(this).removeClass(e.selectClass)}),i.html(o.html()),a.val(o.attr("data-value")).trigger("change"),o.hasClass("dropy__header")?(i.removeClass(e.selectClass),i.html(i.attr("data-title"))):(i.addClass(e.selectClass),o.addClass(e.selectClass)),n.removeClass(e.openClass)}),t(document).bind("click",function(o){t(o.target).parents().hasClass("dropy")||e.$dropys.removeClass(e.openClass)})}};t(function(){a.init()}),e(),t(".project__content p").each(function(e){var o=t(this).find("img"),n=o.width();n<980&&o.wrap("
    ")}),t(".note-close").click(function(){t(this).parent().animate({opacity:0},250,function(){t(this).animate({marginBottom:0},250).children().animate({padding:0},250).wrapInner("
    ").children().slideUp(250,function(){t(this).closest(".note").remove()})})}),function(){var t=document.getElementById("recruitment");t&&(t.style.backgroundImage="url('"+t.dataset.bg+"')")}(),t(document).ready(function(){t("#nav-trigger .navicon-button").click(function(){void 0,t("#nav ul").hasClass("nav__menu--expanded")?(t("#nav ul").removeClass("nav__menu--expanded").slideUp(250),t(this).removeClass("open")):(t("#nav ul").addClass("nav__menu--expanded").slideDown(250),t(this).addClass("open"))})}),function(){t(".tooltip").on("click",function(t){t.preventDefault()}),t("[data-github]").hover(function(e){o(),t(this).children(".tooltip").addClass("tooltip--active")},function(e){t(this).children(".tooltip").removeClass("tooltip--active")}),t("[data-lastfm]").hover(function(e){n(),t(this).children(".tooltip").addClass("tooltip--active")},function(e){t(this).children(".tooltip").removeClass("tooltip--active")})}(),t(function(){t('a[href*="#"]:not(.link--tab)').click(function(){if(location.pathname.replace(/^\//,"")==this.pathname.replace(/^\//,"")&&location.hostname==this.hostname){var e=t(this.hash);if(e=e.length?e:t("[name="+this.hash.slice(1)+"]"),e.length)return t("html, body").animate({scrollTop:e.offset().top},800),!1}})}),t(document).ready(function(){function o(){l++,void 0}function n(){t(".topbarWrapper").scrollupbar({enterViewport:function(){t(".topbarWrapper").addClass("topbarWrapper--visible")},fullyEnterViewport:function(){t("#last-event").text("fullyEnterViewport")},exitViewport:function(){t("#last-event").text("exitViewport")},partiallyExitViewport:function(){t("#last-event").text("partiallyExitViewport")}})}function a(){t.ajax({dataType:"json",type:"GET",url:"./ultron/data.json",cache:!1,success:function(e){var o=r(e);p===!1&&(t(".state").html(i(o.state)),p=!0,void 0),void 0,t(".desc").fadeOut(0,function(){var e=Math.round((new Date).getTime()/1e3);e-o.time<60?t(".desc").html(e-o.time+"s ago"):e-o.time<3600?($minutes=parseInt((e-o.time)/60),t(".desc").html($minutes+"m ago")):($hours=parseInt((e-o.time)/3600),$minutes=parseInt((e-o.time)/60)-60*$hours,t(".desc").html($hours+"h "+$minutes+"m ago")),t(".state").html(i(o.state))}),t(".desc").fadeIn(0),setTimeout(function(){a()},1e3*d)},error:function(t,e){void 0,setTimeout(function(){a()},1e3*d)}})}function i(t){return"1"===t?"Otwarte":"Zamknięte"}function r(t){return t.slice(-1)[0]}var s=new Blazy({offset:20,selector:".blazy",loadInvisible:!1,breakpoints:[{width:360,src:"data-src-small"}],success:function(e){t(e).parent().removeClass("loading",500),o()},error:function(e,o){"missing"===o?(t(e).parent().removeClass("loading",500),void 0):"invalid"===o&&(t(e).parent().removeClass("loading",500),void 0)}}),l=0;t(".membercard__name a").each(function(e){var o=t(this);if(o.html().length>17){var n=o.text(),a=n.charAt(0)+". "+n.substr(n.indexOf(" ")+1);o.text(a),o.html().length>17&&o.parent().addClass("membercard__name--tooLong")}}),t(".membercardSmall__name a").each(function(e){var o=t(this).html().length;if(o>14){var n=t(this).text(),a=n.charAt(0)+". "+n.substr(n.indexOf(" ")+1);t(this).text(a)}}),function(){var t=document.getElementById("recruitment");t&&(t.style.backgroundImage="url('"+t.dataset.bg+"')")}(),function(){function o(){void 0,t(this).html('
    '),i=parseInt(i)+6,t.ajax({url:a,type:"POST",data:{action:"load_posts",post_offset:i},success:function(o){t("#load_more_posts").html("Zobacz starsze"),t("#posts .cardsWrapper").append(o),void 0,s.revalidate(),e()}})}function n(){var o=t(this).parent();l.setTotal(o.attr("data-total")),l.getLoaded()||(l.setLoaded(o.find(".card").length),void 0);var n=o.attr("data-projects-status");return i=parseInt(i)+r,l.getTotal()>l.getLoaded()&&(c.showSpinner(t("#load_more")),void t.ajax({url:a,type:"POST",data:{action:"load_projects",post_offset:i,projects_status:n},success:function(a){o.children(".cardsWrapper").append(a),s.revalidate(),e(),c.showCaption(t("#load_more")),l.incLoaded(),void 0,l.getTotal()<=l.getLoaded()&&c.hide(t("#load_more"))}}))}var a=t(".global").attr("data-ajax-url"),i=0,r=6,l=function(t){var e,o;return{incLoaded:function(){e+=r},getLoaded:function(){return e},setLoaded:function(t){e=t},setTotal:function(t){o=t},getTotal:function(){return o}}}(),c=function(t){return{showSpinner:function(t){t.html('
    ')},showCaption:function(t){t.html("Zobacz starsze")},hide:function(t){t.hide()}}}();t("#load_more_posts").on("click",o),t("#load_more").on("click",n)}(),n(),t(window).width()<750&&t.scrollupbar.destroy(".topbarWrapper"),t(window).scroll(function(e){var o=t(this).scrollTop();0===o&&t(".topbarWrapper").removeClass("topbarWrapper--visible")});var c=function(){var e;return{init:function(){e=t(".tabsMenu__item--current .link--tab").attr("href"),t(e).addClass("tab__content--visible"),s.load(t(".blazy",e),!0),void 0},reset:function(){e=t("#tabsReset .link--tab").attr("href"),t(e).removeClass("tab__content--hidden").addClass("tab__content--visible"),void 0}}}();c.init(),t(".global").on("click",".link--tab",function(e){e.preventDefault(),t(this).parent().addClass("tabsMenu__item--current"),t(this).parent().siblings().removeClass("tabsMenu__item--current");var o=t(this).attr("href");t(".tab__content").not(o).addClass("tab__content--hidden").removeClass("tab__content--visible"),t(o).removeClass("tab__content--hidden").addClass("tab__content--visible"),s.load(t(".blazy",o),!0)}),t.fn.jQuerySimpleCounter=function(e){var o=t.extend({start:0,end:100,easing:"swing",duration:400,complete:""},e),n=t(this);t({count:o.start}).animate({count:o.end},{duration:o.duration,easing:o.easing,step:function(){var t=Math.ceil(this.count);n.children(".counters__count").text(t)},complete:o.complete})},function(){var e=function(t,e,o){var n=t%10,a=t%100,i=[];return o!==!0&&i.push(t),1===t&&e[1]?i.push(e[1]):(0===t||n>=0&&n<=1||n>=5&&n<=9||a>10&&a<20)&&e[0]?i.push(e[0]):(a<10||a>20)&&n>=2&&n<=4&&e[2]&&i.push(e[2]),i[1]};t(".counter").each(function(o){var n=t(this).attr("id"),a=parseInt(t(this).children("a").html());void 0,"finished"===n?t(this).find(".counter__label").html(e(a,["Projektów ukończonych","Projekt ukończony","Projekty ukończone"])):t(this).find(".counter__label").html(e(a,["Projektów realizowanych","Projekt realizowany","Projekty realizowane"]))}),t(".counters__counter").each(function(o){var n=t(this).attr("id"),a=parseInt(t(this).children(".counters__count").data(n));void 0,"finished"===n?t(this).find(".counters__label").html(e(a,["Projektów ukończonych","Projekt ukończony","Projekty ukończone"])):"in-progress"===n&&t(this).find(".counters__label").html(e(a,["Projektów realizowanych","Projekt realizowany","Projekty realizowane"])),t("#"+n).jQuerySimpleCounter({end:a,duration:2500})})}(),function(){t(window).scroll(function(){t(window).scrollTop()>=t(document).height()-t(window).height()-500?t(".footer-wrapper").addClass("footer-wrapper--animate"):t(".footer-wrapper").removeClass("footer-wrapper--animate")})}(),function(){t(".hero__middleTitle").one("animationend webkitAnimationEnd oAnimationEnd oanimationend MSAnimationEnd",function(){t(this).removeClass("hero__middleTitle--animation")}),t(".hero__leftTitle").one("animationend webkitAnimationEnd oAnimationEnd oanimationend MSAnimationEnd",function(){t(this).removeClass("hero__leftTitle--animation")}),t(".hero__rightTitle").one("animationend webkitAnimationEnd oAnimationEnd oanimationend MSAnimationEnd",function(){t(this).removeClass("hero__rightTitle--animation")}),t(".hero__left").hover(function(){t(".hero__middle").addClass("hero__middle--collapsedL"),t(".hero__middleImg").addClass("hero__middleImg--opacity60"),t(".hero__middleTitle").addClass("hero__middleTitle--opacity0"),t(this).addClass("hero__left--mvR")},function(){t(".hero__middle").removeClass("hero__middle--collapsedL"),t(".hero__middleImg").removeClass("hero__middleImg--opacity60"),t(".hero__middleTitle").removeClass("hero__middleTitle--opacity0"),t(this).removeClass("hero__left--mvR")}),t(".hero__right").hover(function(){t(".hero__middle").addClass("hero__middle--collapsedR"),t(".hero__middleImg").addClass("hero__middleImg--opacity60"),t(".hero__middleTitle").addClass("hero__middleTitle--opacity0"),t(this).addClass("hero__right--mvL")},function(){t(".hero__middle").removeClass("hero__middle--collapsedR"),t(".hero__middleImg").removeClass("hero__middleImg--opacity60"),t(".hero__middleTitle").removeClass("hero__middleTitle--opacity0"),t(this).removeClass("hero__right--mvL")});var e=t(window).height(),o=t(window).width();if(void 0,o<750){var n=document.getElementsByClassName("hero__middleImg")[0];document.getElementsByClassName("hero__middle")[0];void 0,n.height=e}}(),function(){t(".brand").each(function(e){t(this).data("brand-desc").length<1&&t(this).find(".brand__more").remove()}),t(".brand__more").bind("click",function(e){e.preventDefault();var o=t(this).parents(".brand"),n=o.data("brand-name"),a=o.data("brand-link"),i=o.data("brand-desc"),r=o.find(".brand__logo").attr("src");void 0,t(".modal__title").html(n),t(".modal__content a").html(a).attr("href",a),t(".modal__content p").html(i),t(".modal__content p").html(i),t(".modal__image").attr("src",r),t("html").addClass("doNotScroll"),t(".modal").addClass("visible")}),t("[data-modal-close]").bind("click",function(e){t(".modal").removeClass("visible"),t("html").removeClass("doNotScroll")})}(),function(){Slider=t("#slider").Swipe({auto:0,continuous:!0}).data("Swipe"),Slider&&(t(".swipe__next").on("click",Slider.next),t(".swipe__prev").on("click",Slider.prev))}();var d=1,p=!1;void 0,t.ajaxSetup({beforeSend:function(t){t.overrideMimeType&&t.overrideMimeType("application/json")}}),a()}),t(".membercard#president").insertBefore("#current_members .cardsWrapper div:eq(0)"),t(".project__content a").addClass("link")}); \ No newline at end of file diff --git a/build/js/map.min.js b/build/js/map.min.js index 824d563..9c3aa7b 100755 --- a/build/js/map.min.js +++ b/build/js/map.min.js @@ -1,250 +1 @@ -// http://codepen.io/codyhouse/pen/szKvm - //set your google maps parameters - var $latitude = jQuery('#snrg-google-map').data('lat'), - $longitude = jQuery('#snrg-google-map').data('lon'), - $map_zoom = 16; - - //google map custom marker icon - .png fallback for IE11 - var is_internetExplorer11 = navigator.userAgent.toLowerCase().indexOf('trident') > -1; - var $marker_url = (is_internetExplorer11) ? 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-location.png' : 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-location_1.svg'; - - //define the basic color of your map, plus a value for saturation and brightness - var $main_color = '#6c4892', - $saturation = -20, - $brightness = 5; - - //we define here the style of the map - var style = [{ - //set saturation for the labels on the map - elementType: "labels", - stylers: [{ - saturation: $saturation - }] - }, { //poi stands for point of interest - don't show these lables on the map - featureType: "poi", - elementType: "labels", - stylers: [{ - visibility: "on" - }] - }, { - //don't show highways lables on the map - featureType: 'road.highway', - elementType: 'labels', - stylers: [{ - visibility: "off" - }] - }, { - //don't show local road lables on the map - featureType: "road.local", - elementType: "labels.icon", - stylers: [{ - visibility: "off" - }] - }, { - //don't show arterial road lables on the map - featureType: "road.arterial", - elementType: "labels.icon", - stylers: [{ - visibility: "off" - }] - }, { - //don't show road lables on the map - featureType: "road", - elementType: "geometry.stroke", - stylers: [{ - visibility: "off" - }] - }, - //style different elements on the map - { - featureType: "transit", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "poi", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "poi.government", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "poi.sport_complex", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "poi.attraction", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "off" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "poi.business", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "transit", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "transit.station", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "landscape", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - - }, { - featureType: "road", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "road.highway", - elementType: "geometry.fill", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - }, { - featureType: "water", - elementType: "geometry", - stylers: [{ - hue: $main_color - }, { - visibility: "on" - }, { - lightness: $brightness - }, { - saturation: $saturation - }] - } -]; - - //set google map options - var map_options = { - center: new google.maps.LatLng($latitude, $longitude), - zoom: $map_zoom, - panControl: false, - zoomControl: false, - mapTypeControl: false, - streetViewControl: false, - mapTypeId: google.maps.MapTypeId.ROADMAP, - scrollwheel: false, - styles: style, - }; - //inizialize the map - var map = new google.maps.Map(document.getElementById('snrg-map'), map_options); - //add a custom marker to the map - var marker = new google.maps.Marker({ - position: new google.maps.LatLng($latitude, $longitude), - map: map, - visible: true, - icon: $marker_url, - }); - - //add custom buttons for the zoom-in/zoom-out on the map - function CustomZoomControl(controlDiv, map) { - //grap the zoom elements from the DOM and insert them in the map - var controlUIzoomIn = document.getElementById('snrg-zoom-in'), - controlUIzoomOut = document.getElementById('snrg-zoom-out'); - controlDiv.appendChild(controlUIzoomIn); - controlDiv.appendChild(controlUIzoomOut); - - // Setup the click event listeners and zoom-in or out according to the clicked element - google.maps.event.addDomListener(controlUIzoomIn, 'click', function() { - map.setZoom(map.getZoom() + 1); - }); - google.maps.event.addDomListener(controlUIzoomOut, 'click', function() { - map.setZoom(map.getZoom() - 1); - }); - } - - var zoomControlDiv = document.createElement('div'); - var zoomControl = new CustomZoomControl(zoomControlDiv, map); - - //insert the zoom div on the top left of the map - map.controls[google.maps.ControlPosition.LEFT_TOP].push(zoomControlDiv); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyJtYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cDovL2NvZGVwZW4uaW8vY29keWhvdXNlL3Blbi9zekt2bVxuICAgIC8vc2V0IHlvdXIgZ29vZ2xlIG1hcHMgcGFyYW1ldGVyc1xuICAgIHZhciAkbGF0aXR1ZGUgPSBqUXVlcnkoJyNzbnJnLWdvb2dsZS1tYXAnKS5kYXRhKCdsYXQnKSxcbiAgICAgICAgJGxvbmdpdHVkZSA9IGpRdWVyeSgnI3NucmctZ29vZ2xlLW1hcCcpLmRhdGEoJ2xvbicpLFxuICAgICAgICAkbWFwX3pvb20gPSAxNjtcblxuICAgIC8vZ29vZ2xlIG1hcCBjdXN0b20gbWFya2VyIGljb24gLSAucG5nIGZhbGxiYWNrIGZvciBJRTExXG4gICAgdmFyIGlzX2ludGVybmV0RXhwbG9yZXIxMSA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCd0cmlkZW50JykgPiAtMTtcbiAgICB2YXIgJG1hcmtlcl91cmwgPSAoaXNfaW50ZXJuZXRFeHBsb3JlcjExKSA/ICdodHRwczovL3MzLXVzLXdlc3QtMi5hbWF6b25hd3MuY29tL3MuY2Rwbi5pby8xNDg4NjYvY2QtaWNvbi1sb2NhdGlvbi5wbmcnIDogJ2h0dHBzOi8vczMtdXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vcy5jZHBuLmlvLzE0ODg2Ni9jZC1pY29uLWxvY2F0aW9uXzEuc3ZnJztcblxuICAgIC8vZGVmaW5lIHRoZSBiYXNpYyBjb2xvciBvZiB5b3VyIG1hcCwgcGx1cyBhIHZhbHVlIGZvciBzYXR1cmF0aW9uIGFuZCBicmlnaHRuZXNzXG4gICAgdmFyICRtYWluX2NvbG9yID0gJyM2YzQ4OTInLFxuICAgICAgICAkc2F0dXJhdGlvbiA9IC0yMCxcbiAgICAgICAgJGJyaWdodG5lc3MgPSA1O1xuXG4gICAgLy93ZSBkZWZpbmUgaGVyZSB0aGUgc3R5bGUgb2YgdGhlIG1hcFxuICAgIHZhciBzdHlsZSA9IFt7XG4gICAgICAgICAgICAvL3NldCBzYXR1cmF0aW9uIGZvciB0aGUgbGFiZWxzIG9uIHRoZSBtYXBcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcImxhYmVsc1wiLFxuICAgICAgICAgICAgc3R5bGVyczogW3tcbiAgICAgICAgICAgICAgICBzYXR1cmF0aW9uOiAkc2F0dXJhdGlvblxuICAgICAgICB9XVxuICAgIH0sIHsgLy9wb2kgc3RhbmRzIGZvciBwb2ludCBvZiBpbnRlcmVzdCAtIGRvbid0IHNob3cgdGhlc2UgbGFibGVzIG9uIHRoZSBtYXBcbiAgICAgICAgICAgIGZlYXR1cmVUeXBlOiBcInBvaVwiLFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6IFwibGFiZWxzXCIsXG4gICAgICAgICAgICBzdHlsZXJzOiBbe1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IFwib25cIlxuICAgICAgICB9XVxuICAgIH0sIHtcbiAgICAgICAgICAgIC8vZG9uJ3Qgc2hvdyBoaWdod2F5cyBsYWJsZXMgb24gdGhlIG1hcFxuICAgICAgICAgICAgZmVhdHVyZVR5cGU6ICdyb2FkLmhpZ2h3YXknLFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdsYWJlbHMnLFxuICAgICAgICAgICAgc3R5bGVyczogW3tcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcIm9mZlwiXG4gICAgICAgIH1dXG4gICAgfSwge1xuICAgICAgICAgICAgLy9kb24ndCBzaG93IGxvY2FsIHJvYWQgbGFibGVzIG9uIHRoZSBtYXBcbiAgICAgICAgICAgIGZlYXR1cmVUeXBlOiBcInJvYWQubG9jYWxcIixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcImxhYmVscy5pY29uXCIsXG4gICAgICAgICAgICBzdHlsZXJzOiBbe1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IFwib2ZmXCJcbiAgICAgICAgfV1cbiAgICB9LCB7XG4gICAgICAgICAgICAvL2Rvbid0IHNob3cgYXJ0ZXJpYWwgcm9hZCBsYWJsZXMgb24gdGhlIG1hcFxuICAgICAgICAgICAgZmVhdHVyZVR5cGU6IFwicm9hZC5hcnRlcmlhbFwiLFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6IFwibGFiZWxzLmljb25cIixcbiAgICAgICAgICAgIHN0eWxlcnM6IFt7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJvZmZcIlxuICAgICAgICB9XVxuICAgIH0sIHtcbiAgICAgICAgICAgIC8vZG9uJ3Qgc2hvdyByb2FkIGxhYmxlcyBvbiB0aGUgbWFwXG4gICAgICAgICAgICBmZWF0dXJlVHlwZTogXCJyb2FkXCIsXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogXCJnZW9tZXRyeS5zdHJva2VcIixcbiAgICAgICAgICAgIHN0eWxlcnM6IFt7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJvZmZcIlxuICAgICAgICB9XVxuICAgIH0sXG4gICAgLy9zdHlsZSBkaWZmZXJlbnQgZWxlbWVudHMgb24gdGhlIG1hcFxuICAgICAgICB7XG4gICAgICAgICAgICBmZWF0dXJlVHlwZTogXCJ0cmFuc2l0XCIsXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogXCJnZW9tZXRyeS5maWxsXCIsXG4gICAgICAgICAgICBzdHlsZXJzOiBbe1xuICAgICAgICAgICAgICAgIGh1ZTogJG1haW5fY29sb3JcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IFwib25cIlxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgbGlnaHRuZXNzOiAkYnJpZ2h0bmVzc1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgc2F0dXJhdGlvbjogJHNhdHVyYXRpb25cbiAgICAgICAgfV1cbiAgICB9LCB7XG4gICAgICAgICAgICBmZWF0dXJlVHlwZTogXCJwb2lcIixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcImdlb21ldHJ5LmZpbGxcIixcbiAgICAgICAgICAgIHN0eWxlcnM6IFt7XG4gICAgICAgICAgICAgICAgaHVlOiAkbWFpbl9jb2xvclxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJvblwiXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBsaWdodG5lc3M6ICRicmlnaHRuZXNzXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBzYXR1cmF0aW9uOiAkc2F0dXJhdGlvblxuICAgICAgICB9XVxuICAgIH0sIHtcbiAgICAgICAgICAgIGZlYXR1cmVUeXBlOiBcInBvaS5nb3Zlcm5tZW50XCIsXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogXCJnZW9tZXRyeS5maWxsXCIsXG4gICAgICAgICAgICBzdHlsZXJzOiBbe1xuICAgICAgICAgICAgICAgIGh1ZTogJG1haW5fY29sb3JcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IFwib25cIlxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgbGlnaHRuZXNzOiAkYnJpZ2h0bmVzc1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgc2F0dXJhdGlvbjogJHNhdHVyYXRpb25cbiAgICAgICAgfV1cbiAgICB9LCB7XG4gICAgICAgICAgICBmZWF0dXJlVHlwZTogXCJwb2kuc3BvcnRfY29tcGxleFwiLFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6IFwiZ2VvbWV0cnkuZmlsbFwiLFxuICAgICAgICAgICAgc3R5bGVyczogW3tcbiAgICAgICAgICAgICAgICBodWU6ICRtYWluX2NvbG9yXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcIm9uXCJcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGxpZ2h0bmVzczogJGJyaWdodG5lc3NcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIHNhdHVyYXRpb246ICRzYXR1cmF0aW9uXG4gICAgICAgIH1dXG4gICAgfSwge1xuICAgICAgICAgICAgZmVhdHVyZVR5cGU6IFwicG9pLmF0dHJhY3Rpb25cIixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcImdlb21ldHJ5LmZpbGxcIixcbiAgICAgICAgICAgIHN0eWxlcnM6IFt7XG4gICAgICAgICAgICAgICAgaHVlOiAkbWFpbl9jb2xvclxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJvZmZcIlxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgbGlnaHRuZXNzOiAkYnJpZ2h0bmVzc1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgc2F0dXJhdGlvbjogJHNhdHVyYXRpb25cbiAgICAgICAgfV1cbiAgICB9LCB7XG4gICAgICAgICAgICBmZWF0dXJlVHlwZTogXCJwb2kuYnVzaW5lc3NcIixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcImdlb21ldHJ5LmZpbGxcIixcbiAgICAgICAgICAgIHN0eWxlcnM6IFt7XG4gICAgICAgICAgICAgICAgaHVlOiAkbWFpbl9jb2xvclxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJvblwiXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBsaWdodG5lc3M6ICRicmlnaHRuZXNzXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBzYXR1cmF0aW9uOiAkc2F0dXJhdGlvblxuICAgICAgICB9XVxuICAgIH0sIHtcbiAgICAgICAgICAgIGZlYXR1cmVUeXBlOiBcInRyYW5zaXRcIixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcImdlb21ldHJ5LmZpbGxcIixcbiAgICAgICAgICAgIHN0eWxlcnM6IFt7XG4gICAgICAgICAgICAgICAgaHVlOiAkbWFpbl9jb2xvclxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJvblwiXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBsaWdodG5lc3M6ICRicmlnaHRuZXNzXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBzYXR1cmF0aW9uOiAkc2F0dXJhdGlvblxuICAgICAgICB9XVxuICAgIH0sIHtcbiAgICAgICAgICAgIGZlYXR1cmVUeXBlOiBcInRyYW5zaXQuc3RhdGlvblwiLFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6IFwiZ2VvbWV0cnkuZmlsbFwiLFxuICAgICAgICAgICAgc3R5bGVyczogW3tcbiAgICAgICAgICAgICAgICBodWU6ICRtYWluX2NvbG9yXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcIm9uXCJcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGxpZ2h0bmVzczogJGJyaWdodG5lc3NcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIHNhdHVyYXRpb246ICRzYXR1cmF0aW9uXG4gICAgICAgIH1dXG4gICAgfSwge1xuICAgICAgICAgICAgZmVhdHVyZVR5cGU6IFwibGFuZHNjYXBlXCIsXG4gICAgICAgICAgICBzdHlsZXJzOiBbe1xuICAgICAgICAgICAgICAgIGh1ZTogJG1haW5fY29sb3JcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IFwib25cIlxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgbGlnaHRuZXNzOiAkYnJpZ2h0bmVzc1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgc2F0dXJhdGlvbjogJHNhdHVyYXRpb25cbiAgICAgICAgfV1cblxuICAgIH0sIHtcbiAgICAgICAgICAgIGZlYXR1cmVUeXBlOiBcInJvYWRcIixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcImdlb21ldHJ5LmZpbGxcIixcbiAgICAgICAgICAgIHN0eWxlcnM6IFt7XG4gICAgICAgICAgICAgICAgaHVlOiAkbWFpbl9jb2xvclxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJvblwiXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBsaWdodG5lc3M6ICRicmlnaHRuZXNzXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBzYXR1cmF0aW9uOiAkc2F0dXJhdGlvblxuICAgICAgICB9XVxuICAgIH0sIHtcbiAgICAgICAgICAgIGZlYXR1cmVUeXBlOiBcInJvYWQuaGlnaHdheVwiLFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6IFwiZ2VvbWV0cnkuZmlsbFwiLFxuICAgICAgICAgICAgc3R5bGVyczogW3tcbiAgICAgICAgICAgICAgICBodWU6ICRtYWluX2NvbG9yXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcIm9uXCJcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGxpZ2h0bmVzczogJGJyaWdodG5lc3NcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIHNhdHVyYXRpb246ICRzYXR1cmF0aW9uXG4gICAgICAgIH1dXG4gICAgfSwge1xuICAgICAgICAgICAgZmVhdHVyZVR5cGU6IFwid2F0ZXJcIixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcImdlb21ldHJ5XCIsXG4gICAgICAgICAgICBzdHlsZXJzOiBbe1xuICAgICAgICAgICAgICAgIGh1ZTogJG1haW5fY29sb3JcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IFwib25cIlxuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgbGlnaHRuZXNzOiAkYnJpZ2h0bmVzc1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgc2F0dXJhdGlvbjogJHNhdHVyYXRpb25cbiAgICAgICAgfV1cbiAgICB9XG5dO1xuXG4gICAgLy9zZXQgZ29vZ2xlIG1hcCBvcHRpb25zXG4gICAgdmFyIG1hcF9vcHRpb25zID0ge1xuICAgICAgICBjZW50ZXI6IG5ldyBnb29nbGUubWFwcy5MYXRMbmcoJGxhdGl0dWRlLCAkbG9uZ2l0dWRlKSxcbiAgICAgICAgem9vbTogJG1hcF96b29tLFxuICAgICAgICBwYW5Db250cm9sOiBmYWxzZSxcbiAgICAgICAgem9vbUNvbnRyb2w6IGZhbHNlLFxuICAgICAgICBtYXBUeXBlQ29udHJvbDogZmFsc2UsXG4gICAgICAgIHN0cmVldFZpZXdDb250cm9sOiBmYWxzZSxcbiAgICAgICAgbWFwVHlwZUlkOiBnb29nbGUubWFwcy5NYXBUeXBlSWQuUk9BRE1BUCxcbiAgICAgICAgc2Nyb2xsd2hlZWw6IGZhbHNlLFxuICAgICAgICBzdHlsZXM6IHN0eWxlLFxuICAgIH07XG4gICAgLy9pbml6aWFsaXplIHRoZSBtYXBcbiAgICB2YXIgbWFwID0gbmV3IGdvb2dsZS5tYXBzLk1hcChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc25yZy1tYXAnKSwgbWFwX29wdGlvbnMpO1xuICAgIC8vYWRkIGEgY3VzdG9tIG1hcmtlciB0byB0aGUgbWFwXG4gICAgdmFyIG1hcmtlciA9IG5ldyBnb29nbGUubWFwcy5NYXJrZXIoe1xuICAgICAgICBwb3NpdGlvbjogbmV3IGdvb2dsZS5tYXBzLkxhdExuZygkbGF0aXR1ZGUsICRsb25naXR1ZGUpLFxuICAgICAgICBtYXA6IG1hcCxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgaWNvbjogJG1hcmtlcl91cmwsXG4gICAgfSk7XG5cbiAgICAvL2FkZCBjdXN0b20gYnV0dG9ucyBmb3IgdGhlIHpvb20taW4vem9vbS1vdXQgb24gdGhlIG1hcFxuICAgIGZ1bmN0aW9uIEN1c3RvbVpvb21Db250cm9sKGNvbnRyb2xEaXYsIG1hcCkge1xuICAgICAgICAvL2dyYXAgdGhlIHpvb20gZWxlbWVudHMgZnJvbSB0aGUgRE9NIGFuZCBpbnNlcnQgdGhlbSBpbiB0aGUgbWFwXG4gICAgICAgIHZhciBjb250cm9sVUl6b29tSW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc25yZy16b29tLWluJyksXG4gICAgICAgICAgICBjb250cm9sVUl6b29tT3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nucmctem9vbS1vdXQnKTtcbiAgICAgICAgY29udHJvbERpdi5hcHBlbmRDaGlsZChjb250cm9sVUl6b29tSW4pO1xuICAgICAgICBjb250cm9sRGl2LmFwcGVuZENoaWxkKGNvbnRyb2xVSXpvb21PdXQpO1xuXG4gICAgICAgIC8vIFNldHVwIHRoZSBjbGljayBldmVudCBsaXN0ZW5lcnMgYW5kIHpvb20taW4gb3Igb3V0IGFjY29yZGluZyB0byB0aGUgY2xpY2tlZCBlbGVtZW50XG4gICAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmFkZERvbUxpc3RlbmVyKGNvbnRyb2xVSXpvb21JbiwgJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBtYXAuc2V0Wm9vbShtYXAuZ2V0Wm9vbSgpICsgMSk7XG4gICAgICAgIH0pO1xuICAgICAgICBnb29nbGUubWFwcy5ldmVudC5hZGREb21MaXN0ZW5lcihjb250cm9sVUl6b29tT3V0LCAnY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIG1hcC5zZXRab29tKG1hcC5nZXRab29tKCkgLSAxKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFyIHpvb21Db250cm9sRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdmFyIHpvb21Db250cm9sID0gbmV3IEN1c3RvbVpvb21Db250cm9sKHpvb21Db250cm9sRGl2LCBtYXApO1xuXG4gICAgLy9pbnNlcnQgdGhlIHpvb20gZGl2IG9uIHRoZSB0b3AgbGVmdCBvZiB0aGUgbWFwXG4gICAgbWFwLmNvbnRyb2xzW2dvb2dsZS5tYXBzLkNvbnRyb2xQb3NpdGlvbi5MRUZUX1RPUF0ucHVzaCh6b29tQ29udHJvbERpdik7Il0sImZpbGUiOiJtYXAubWluLmpzIn0= +function CustomZoomControl(e,t){var o=document.getElementById("snrg-zoom-in"),i=document.getElementById("snrg-zoom-out");e.appendChild(o),e.appendChild(i),google.maps.event.addDomListener(o,"click",function(){t.setZoom(t.getZoom()+1)}),google.maps.event.addDomListener(i,"click",function(){t.setZoom(t.getZoom()-1)})}var $latitude=jQuery("#snrg-google-map").data("lat"),$longitude=jQuery("#snrg-google-map").data("lon"),$map_zoom=16,is_internetExplorer11=navigator.userAgent.toLowerCase().indexOf("trident")>-1,$marker_url=is_internetExplorer11?"https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-location.png":"https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-location_1.svg",$main_color="#6c4892",$saturation=-20,$brightness=5,style=[{elementType:"labels",stylers:[{saturation:$saturation}]},{featureType:"poi",elementType:"labels",stylers:[{visibility:"on"}]},{featureType:"road.highway",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:"road.local",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"road.arterial",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"geometry.stroke",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"poi",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"poi.government",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"poi.sport_complex",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"poi.attraction",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"off"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"poi.business",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"transit",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"transit.station",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"landscape",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"road",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]},{featureType:"water",elementType:"geometry",stylers:[{hue:$main_color},{visibility:"on"},{lightness:$brightness},{saturation:$saturation}]}],map_options={center:new google.maps.LatLng($latitude,$longitude),zoom:$map_zoom,panControl:!1,zoomControl:!1,mapTypeControl:!1,streetViewControl:!1,mapTypeId:google.maps.MapTypeId.ROADMAP,scrollwheel:!1,styles:style},map=new google.maps.Map(document.getElementById("snrg-map"),map_options),marker=new google.maps.Marker({position:new google.maps.LatLng($latitude,$longitude),map:map,visible:!0,icon:$marker_url}),zoomControlDiv=document.createElement("div"),zoomControl=new CustomZoomControl(zoomControlDiv,map);map.controls[google.maps.ControlPosition.LEFT_TOP].push(zoomControlDiv); \ No newline at end of file diff --git a/build/js/member.min.js b/build/js/member.min.js index 6ea5740..5b4012c 100755 --- a/build/js/member.min.js +++ b/build/js/member.min.js @@ -1,129 +1 @@ -// Zwraca stan animacji. Jeśli true, to animacja zostanie odpalona -var animationState = (function() { - var value = true; - return { - change: function() { - value = !value; - }, - value: function() { - return value; - } - }; -})(); - -(function() { - 'strict use'; - var ajax_url = jQuery('.global').attr('data-ajax-url'); - var membercard; - var memberWrapper = $('.memberWrapper'); - - $('.link--name').on('click', changePage); - $(window).on('popstate', changePage); - - function changePage(event) { - var prevUrl = window.location.href; - // KLIK // - if (event.type === 'click') { - event.preventDefault(); - // Skrolujemy do góry, by pokazać topbar - $('html').scrollTop(0); - - console.log(event.type); - membercard = $(this).parents('.membercard'); - var id = membercard.attr('data-id'); - var memberUrl = membercard.find('.link--name').attr('href'); - changeUrl(memberUrl); - animateMemberPage('hide'); - - // zapobiega powtórnemu ładowaniu tego samego członka - if (memberWrapper.attr('data-current-member') !== id) { - request({ - action: 'load_member_page', - id: id - }, addData); - changeAttrId(id); - animateOverlay(); - - } else { - animateMemberPage('show'); - animateOverlay(); - } - // TĘDY-SIĘDY // - } else if (event.type === 'popstate') { - console.log(event.type); - animateOverlay(); - changeUrl(prevUrl); - tabs.reset(); - } - } - - function animateOverlay() { - if (animationState.value()) { - $('.memberOverlay').addClass('memberOverlay--visible'); - $('html').css({'overflow': 'hidden'}); - $.scrollupbar.destroy('.topbarWrapper'); - - console.log("Changing state:", animationState.value()); - } else { - initTopbar(); - $('.memberOverlay').removeClass('memberOverlay--visible'); - $('html').css({'overflow': 'auto'}); - - console.log("Changing state:", animationState.value()); - } - animationState.change(); - console.log("State changed to:", animationState.value()); - } - - function animateMemberPage(state) { - if (state === 'show') { - memberWrapper.removeClass('hidden'); - } else if (state === 'hide') { - memberWrapper.addClass('hidden'); - } - } - - function changeUrl(url) { - if (url != window.location) { - //add the new page to the window.history - window.history.pushState({ - path: url - }, '', url); - } - } - // Dodaje dane w odpowiednie miejsce - var addData = function(data) { - // jeśli już coś jest, to usuwa - if (memberWrapper.children().length > 1) { - memberWrapper.empty(); - } - animateMemberPage('show'); - memberWrapper.append(data); - tabs.init(); - }; - - function request(requestingData, addData) { - $.ajax({ - url: ajax_url, - type: 'POST', - data: requestingData, - success: function(data) { - addData(data); - console.log('Data loaded'); - bLazy.revalidate(); - }, - error: function(errorThrown) { - console.error(errorThrown); - } - }); - } - - function changeAttrId(id) { - memberWrapper[0].setAttribute('data-current-member', id); - } - - $('.memberOverlay').on('scroll', function () { - $('html').scrollTop($(this).scrollTop()); - }); -})(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyJtZW1iZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gWndyYWNhIHN0YW4gYW5pbWFjamkuIEplxZtsaSB0cnVlLCB0byBhbmltYWNqYSB6b3N0YW5pZSBvZHBhbG9uYVxudmFyIGFuaW1hdGlvblN0YXRlID0gKGZ1bmN0aW9uKCkge1xuICAgIHZhciB2YWx1ZSA9IHRydWU7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY2hhbmdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhbHVlID0gIXZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9O1xufSkoKTtcblxuKGZ1bmN0aW9uKCkge1xuICAgICdzdHJpY3QgdXNlJztcbiAgICB2YXIgYWpheF91cmwgPSBqUXVlcnkoJy5nbG9iYWwnKS5hdHRyKCdkYXRhLWFqYXgtdXJsJyk7XG4gICAgdmFyIG1lbWJlcmNhcmQ7XG4gICAgdmFyIG1lbWJlcldyYXBwZXIgPSAkKCcubWVtYmVyV3JhcHBlcicpO1xuXG4gICAgJCgnLmxpbmstLW5hbWUnKS5vbignY2xpY2snLCBjaGFuZ2VQYWdlKTtcbiAgICAkKHdpbmRvdykub24oJ3BvcHN0YXRlJywgY2hhbmdlUGFnZSk7XG5cbiAgICBmdW5jdGlvbiBjaGFuZ2VQYWdlKGV2ZW50KSB7XG4gICAgICAgIHZhciBwcmV2VXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgICAgIC8vIEtMSUsgLy9cbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAvLyBTa3JvbHVqZW15IGRvIGfDs3J5LCBieSBwb2themHEhyB0b3BiYXJcbiAgICAgICAgICAgICQoJ2h0bWwnKS5zY3JvbGxUb3AoMCk7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGV2ZW50LnR5cGUpO1xuICAgICAgICAgICAgbWVtYmVyY2FyZCA9ICQodGhpcykucGFyZW50cygnLm1lbWJlcmNhcmQnKTtcbiAgICAgICAgICAgIHZhciBpZCA9IG1lbWJlcmNhcmQuYXR0cignZGF0YS1pZCcpO1xuICAgICAgICAgICAgdmFyIG1lbWJlclVybCA9IG1lbWJlcmNhcmQuZmluZCgnLmxpbmstLW5hbWUnKS5hdHRyKCdocmVmJyk7XG4gICAgICAgICAgICBjaGFuZ2VVcmwobWVtYmVyVXJsKTtcbiAgICAgICAgICAgIGFuaW1hdGVNZW1iZXJQYWdlKCdoaWRlJyk7XG5cbiAgICAgICAgICAgIC8vIHphcG9iaWVnYSBwb3d0w7NybmVtdSDFgmFkb3dhbml1IHRlZ28gc2FtZWdvIGN6xYJvbmthXG4gICAgICAgICAgICBpZiAobWVtYmVyV3JhcHBlci5hdHRyKCdkYXRhLWN1cnJlbnQtbWVtYmVyJykgIT09IGlkKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2xvYWRfbWVtYmVyX3BhZ2UnLFxuICAgICAgICAgICAgICAgICAgICBpZDogaWRcbiAgICAgICAgICAgICAgICB9LCBhZGREYXRhKTtcbiAgICAgICAgICAgICAgICBjaGFuZ2VBdHRySWQoaWQpO1xuICAgICAgICAgICAgICAgIGFuaW1hdGVPdmVybGF5KCk7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYW5pbWF0ZU1lbWJlclBhZ2UoJ3Nob3cnKTtcbiAgICAgICAgICAgICAgICBhbmltYXRlT3ZlcmxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVMSYRFktU0nEmERZIC8vXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gJ3BvcHN0YXRlJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZXZlbnQudHlwZSk7XG4gICAgICAgICAgICBhbmltYXRlT3ZlcmxheSgpO1xuICAgICAgICAgICAgY2hhbmdlVXJsKHByZXZVcmwpO1xuICAgICAgICAgICAgdGFicy5yZXNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYW5pbWF0ZU92ZXJsYXkoKSB7XG4gICAgICAgIGlmIChhbmltYXRpb25TdGF0ZS52YWx1ZSgpKSB7XG4gICAgICAgICAgICAkKCcubWVtYmVyT3ZlcmxheScpLmFkZENsYXNzKCdtZW1iZXJPdmVybGF5LS12aXNpYmxlJyk7XG4gICAgICAgICAgICAkKCdodG1sJykuY3NzKHsnb3ZlcmZsb3cnOiAnaGlkZGVuJ30pO1xuICAgICAgICAgICAgJC5zY3JvbGx1cGJhci5kZXN0cm95KCcudG9wYmFyV3JhcHBlcicpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNoYW5naW5nIHN0YXRlOlwiLCBhbmltYXRpb25TdGF0ZS52YWx1ZSgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluaXRUb3BiYXIoKTtcbiAgICAgICAgICAgICQoJy5tZW1iZXJPdmVybGF5JykucmVtb3ZlQ2xhc3MoJ21lbWJlck92ZXJsYXktLXZpc2libGUnKTtcbiAgICAgICAgICAgICQoJ2h0bWwnKS5jc3MoeydvdmVyZmxvdyc6ICdhdXRvJ30pO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNoYW5naW5nIHN0YXRlOlwiLCBhbmltYXRpb25TdGF0ZS52YWx1ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICBhbmltYXRpb25TdGF0ZS5jaGFuZ2UoKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJTdGF0ZSBjaGFuZ2VkIHRvOlwiLCBhbmltYXRpb25TdGF0ZS52YWx1ZSgpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhbmltYXRlTWVtYmVyUGFnZShzdGF0ZSkge1xuICAgICAgICBpZiAoc3RhdGUgPT09ICdzaG93Jykge1xuICAgICAgICAgICAgbWVtYmVyV3JhcHBlci5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUgPT09ICdoaWRlJykge1xuICAgICAgICAgICAgbWVtYmVyV3JhcHBlci5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGFuZ2VVcmwodXJsKSB7XG4gICAgICAgIGlmICh1cmwgIT0gd2luZG93LmxvY2F0aW9uKSB7XG4gICAgICAgICAgICAvL2FkZCB0aGUgbmV3IHBhZ2UgdG8gdGhlIHdpbmRvdy5oaXN0b3J5XG4gICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe1xuICAgICAgICAgICAgICAgIHBhdGg6IHVybFxuICAgICAgICAgICAgfSwgJycsIHVybCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRG9kYWplIGRhbmUgdyBvZHBvd2llZG5pZSBtaWVqc2NlXG4gICAgdmFyIGFkZERhdGEgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgIC8vIGplxZtsaSBqdcW8IGNvxZsgamVzdCwgdG8gdXN1d2FcbiAgICAgICAgaWYgKG1lbWJlcldyYXBwZXIuY2hpbGRyZW4oKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBtZW1iZXJXcmFwcGVyLmVtcHR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgYW5pbWF0ZU1lbWJlclBhZ2UoJ3Nob3cnKTtcbiAgICAgICAgbWVtYmVyV3JhcHBlci5hcHBlbmQoZGF0YSk7XG4gICAgICAgIHRhYnMuaW5pdCgpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZXF1ZXN0KHJlcXVlc3RpbmdEYXRhLCBhZGREYXRhKSB7XG4gICAgICAgICQuYWpheCh7XG4gICAgICAgICAgICB1cmw6IGFqYXhfdXJsLFxuICAgICAgICAgICAgdHlwZTogJ1BPU1QnLFxuICAgICAgICAgICAgZGF0YTogcmVxdWVzdGluZ0RhdGEsXG4gICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgICAgICAgYWRkRGF0YShkYXRhKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRGF0YSBsb2FkZWQnKTtcbiAgICAgICAgICAgICAgICBiTGF6eS5yZXZhbGlkYXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKGVycm9yVGhyb3duKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvclRocm93bik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoYW5nZUF0dHJJZChpZCkge1xuICAgICAgICBtZW1iZXJXcmFwcGVyWzBdLnNldEF0dHJpYnV0ZSgnZGF0YS1jdXJyZW50LW1lbWJlcicsIGlkKTtcbiAgICB9XG5cbiAgICAkKCcubWVtYmVyT3ZlcmxheScpLm9uKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoJ2h0bWwnKS5zY3JvbGxUb3AoJCh0aGlzKS5zY3JvbGxUb3AoKSk7XG4gICAgfSk7XG59KSgpOyJdLCJmaWxlIjoibWVtYmVyLm1pbi5qcyJ9 +var animationState=function(){var e=!0;return{change:function(){e=!e},value:function(){return e}}}();!function(){"strict use";function e(e){var l=window.location.href;if("click"===e.type){e.preventDefault(),$("html").scrollTop(0),void 0,i=$(this).parents(".membercard");var m=i.attr("data-id"),d=i.find(".link--name").attr("href");n(d),a("hide"),s.attr("data-current-member")!==m?(o({action:"load_member_page",id:m},c),r(m),t()):(a("show"),t())}else"popstate"===e.type&&(void 0,t(),n(l),tabs.reset())}function t(){animationState.value()?($(".memberOverlay").addClass("memberOverlay--visible"),$("html").css({overflow:"hidden"}),$.scrollupbar.destroy(".topbarWrapper"),void 0):(initTopbar(),$(".memberOverlay").removeClass("memberOverlay--visible"),$("html").css({overflow:"auto"}),void 0),animationState.change(),void 0}function a(e){"show"===e?s.removeClass("hidden"):"hide"===e&&s.addClass("hidden")}function n(e){e!=window.location&&window.history.pushState({path:e},"",e)}function o(e,t){$.ajax({url:l,type:"POST",data:e,success:function(e){t(e),void 0,bLazy.revalidate()},error:function(e){void 0}})}function r(e){s[0].setAttribute("data-current-member",e)}var i,l=jQuery(".global").attr("data-ajax-url"),s=$(".memberWrapper");$(".link--name").on("click",e),$(window).on("popstate",e);var c=function(e){s.children().length>1&&s.empty(),a("show"),s.append(e),tabs.init()};$(".memberOverlay").on("scroll",function(){$("html").scrollTop($(this).scrollTop())})}(); \ No newline at end of file diff --git a/build/js/prism.min.js b/build/js/prism.min.js index 4837a35..59599c1 100755 --- a/build/js/prism.min.js +++ b/build/js/prism.min.js @@ -1,709 +1 @@ - -/* ********************************************** - Begin prism-core.js -********************************************** */ - -var _self = (typeof window !== 'undefined') - ? window // if in browser - : ( - (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) - ? self // if in worker - : {} // if in node js - ); - -/** - * Prism: Lightweight, robust, elegant syntax highlighting - * MIT license http://www.opensource.org/licenses/mit-license.php/ - * @author Lea Verou http://lea.verou.me - */ - -var Prism = (function(){ - -// Private helper vars -var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i; - -var _ = _self.Prism = { - util: { - encode: function (tokens) { - if (tokens instanceof Token) { - return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); - } else if (_.util.type(tokens) === 'Array') { - return tokens.map(_.util.encode); - } else { - return tokens.replace(/&/g, '&').replace(/ text.length) { - // Something went terribly wrong, ABORT, ABORT! - break tokenloop; - } - - if (str instanceof Token) { - continue; - } - - pattern.lastIndex = 0; - - var match = pattern.exec(str); - - if (match) { - if(lookbehind) { - lookbehindLength = match[1].length; - } - - var from = match.index - 1 + lookbehindLength, - match = match[0].slice(lookbehindLength), - len = match.length, - to = from + len, - before = str.slice(0, from + 1), - after = str.slice(to + 1); - - var args = [i, 1]; - - if (before) { - args.push(before); - } - - var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias); - - args.push(wrapped); - - if (after) { - args.push(after); - } - - Array.prototype.splice.apply(strarr, args); - } - } - } - } - - return strarr; - }, - - hooks: { - all: {}, - - add: function (name, callback) { - var hooks = _.hooks.all; - - hooks[name] = hooks[name] || []; - - hooks[name].push(callback); - }, - - run: function (name, env) { - var callbacks = _.hooks.all[name]; - - if (!callbacks || !callbacks.length) { - return; - } - - for (var i=0, callback; callback = callbacks[i++];) { - callback(env); - } - } - } -}; - -var Token = _.Token = function(type, content, alias) { - this.type = type; - this.content = content; - this.alias = alias; -}; - -Token.stringify = function(o, language, parent) { - if (typeof o == 'string') { - return o; - } - - if (_.util.type(o) === 'Array') { - return o.map(function(element) { - return Token.stringify(element, language, o); - }).join(''); - } - - var env = { - type: o.type, - content: Token.stringify(o.content, language, parent), - tag: 'span', - classes: ['token', o.type], - attributes: {}, - language: language, - parent: parent - }; - - if (env.type == 'comment') { - env.attributes['spellcheck'] = 'true'; - } - - if (o.alias) { - var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; - Array.prototype.push.apply(env.classes, aliases); - } - - _.hooks.run('wrap', env); - - var attributes = ''; - - for (var name in env.attributes) { - attributes += (attributes ? ' ' : '') + name + '="' + (env.attributes[name] || '') + '"'; - } - - return '<' + env.tag + ' class="' + env.classes.join(' ') + '" ' + attributes + '>' + env.content + ''; - -}; - -if (!_self.document) { - if (!_self.addEventListener) { - // in Node.js - return _self.Prism; - } - // In worker - _self.addEventListener('message', function(evt) { - var message = JSON.parse(evt.data), - lang = message.language, - code = message.code, - immediateClose = message.immediateClose; - - _self.postMessage(_.highlight(code, _.languages[lang], lang)); - if (immediateClose) { - _self.close(); - } - }, false); - - return _self.Prism; -} - -// Get current script and highlight -var script = document.getElementsByTagName('script'); - -script = script[script.length - 1]; - -if (script) { - _.filename = script.src; - - if (document.addEventListener && !script.hasAttribute('data-manual')) { - document.addEventListener('DOMContentLoaded', _.highlightAll); - } -} - -return _self.Prism; - -})(); - -if (typeof module !== 'undefined' && module.exports) { - module.exports = Prism; -} - -// hack for components to work correctly in node.js -if (typeof global !== 'undefined') { - global.Prism = Prism; -} - - -/* ********************************************** - Begin prism-markup.js -********************************************** */ - -Prism.languages.markup = { - 'comment': //, - 'prolog': /<\?[\w\W]+?\?>/, - 'doctype': //, - 'cdata': //i, - 'tag': { - pattern: /<\/?(?!\d)[^\s>\/=.$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i, - inside: { - 'tag': { - pattern: /^<\/?[^\s>\/]+/i, - inside: { - 'punctuation': /^<\/?/, - 'namespace': /^[^\s>\/:]+:/ - } - }, - 'attr-value': { - pattern: /=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i, - inside: { - 'punctuation': /[=>"']/ - } - }, - 'punctuation': /\/?>/, - 'attr-name': { - pattern: /[^\s>\/]+/, - inside: { - 'namespace': /^[^\s>\/:]+:/ - } - } - - } - }, - 'entity': /&#?[\da-z]{1,8};/i -}; - -// Plugin to make entity title show the real entity, idea by Roman Komarov -Prism.hooks.add('wrap', function(env) { - - if (env.type === 'entity') { - env.attributes['title'] = env.content.replace(/&/, '&'); - } -}); - -Prism.languages.xml = Prism.languages.markup; -Prism.languages.html = Prism.languages.markup; -Prism.languages.mathml = Prism.languages.markup; -Prism.languages.svg = Prism.languages.markup; - - -/* ********************************************** - Begin prism-css.js -********************************************** */ - -Prism.languages.css = { - 'comment': /\/\*[\w\W]*?\*\//, - 'atrule': { - pattern: /@[\w-]+?.*?(;|(?=\s*\{))/i, - inside: { - 'rule': /@[\w-]+/ - // See rest below - } - }, - 'url': /url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, - 'selector': /[^\{\}\s][^\{\};]*?(?=\s*\{)/, - 'string': /("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/, - 'property': /(\b|\B)[\w-]+(?=\s*:)/i, - 'important': /\B!important\b/i, - 'function': /[-a-z0-9]+(?=\()/i, - 'punctuation': /[(){};:]/ -}; - -Prism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css); - -if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - 'style': { - pattern: /()[\w\W]*?(?=<\/style>)/i, - lookbehind: true, - inside: Prism.languages.css, - alias: 'language-css' - } - }); - - Prism.languages.insertBefore('inside', 'attr-value', { - 'style-attr': { - pattern: /\s*style=("|').*?\1/i, - inside: { - 'attr-name': { - pattern: /^\s*style/i, - inside: Prism.languages.markup.tag.inside - }, - 'punctuation': /^\s*=\s*['"]|['"]\s*$/, - 'attr-value': { - pattern: /.+/i, - inside: Prism.languages.css - } - }, - alias: 'language-css' - } - }, Prism.languages.markup.tag); -} - -/* ********************************************** - Begin prism-clike.js -********************************************** */ - -Prism.languages.clike = { - 'comment': [ - { - pattern: /(^|[^\\])\/\*[\w\W]*?\*\//, - lookbehind: true - }, - { - pattern: /(^|[^\\:])\/\/.*/, - lookbehind: true - } - ], - 'string': /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - 'class-name': { - pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i, - lookbehind: true, - inside: { - punctuation: /(\.|\\)/ - } - }, - 'keyword': /\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, - 'boolean': /\b(true|false)\b/, - 'function': /[a-z0-9_]+(?=\()/i, - 'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i, - 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, - 'punctuation': /[{}[\];(),.:]/ -}; - - -/* ********************************************** - Begin prism-javascript.js -********************************************** */ - -Prism.languages.javascript = Prism.languages.extend('clike', { - 'keyword': /\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/, - 'number': /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/, - // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) - 'function': /[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i -}); - -Prism.languages.insertBefore('javascript', 'keyword', { - 'regex': { - pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/, - lookbehind: true - } -}); - -Prism.languages.insertBefore('javascript', 'class-name', { - 'template-string': { - pattern: /`(?:\\`|\\?[^`])*`/, - inside: { - 'interpolation': { - pattern: /\$\{[^}]+\}/, - inside: { - 'interpolation-punctuation': { - pattern: /^\$\{|\}$/, - alias: 'punctuation' - }, - rest: Prism.languages.javascript - } - }, - 'string': /[\s\S]+/ - } - } -}); - -if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - 'script': { - pattern: /()[\w\W]*?(?=<\/script>)/i, - lookbehind: true, - inside: Prism.languages.javascript, - alias: 'language-javascript' - } - }); -} - -Prism.languages.js = Prism.languages.javascript; - -/* ********************************************** - Begin prism-file-highlight.js -********************************************** */ - -(function () { - if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) { - return; - } - - self.Prism.fileHighlight = function() { - - var Extensions = { - 'js': 'javascript', - 'html': 'markup', - 'svg': 'markup', - 'xml': 'markup', - 'py': 'python', - 'rb': 'ruby', - 'ps1': 'powershell', - 'psm1': 'powershell' - }; - - if(Array.prototype.forEach) { // Check to prevent error in IE8 - Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) { - var src = pre.getAttribute('data-src'); - - var language, parent = pre; - var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i; - while (parent && !lang.test(parent.className)) { - parent = parent.parentNode; - } - - if (parent) { - language = (pre.className.match(lang) || [, ''])[1]; - } - - if (!language) { - var extension = (src.match(/\.(\w+)$/) || [, ''])[1]; - language = Extensions[extension] || extension; - } - - var code = document.createElement('code'); - code.className = 'language-' + language; - - pre.textContent = ''; - - code.textContent = 'Loading…'; - - pre.appendChild(code); - - var xhr = new XMLHttpRequest(); - - xhr.open('GET', src, true); - - xhr.onreadystatechange = function () { - if (xhr.readyState == 4) { - - if (xhr.status < 400 && xhr.responseText) { - code.textContent = xhr.responseText; - - Prism.highlightElement(code); - } - else if (xhr.status >= 400) { - code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText; - } - else { - code.textContent = '✖ Error: File does not exist or is empty'; - } - } - }; - - xhr.send(null); - }); - } - - }; - - self.Prism.fileHighlight(); - -})(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyJwcmlzbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgQmVnaW4gcHJpc20tY29yZS5qc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuXG52YXIgX3NlbGYgPSAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpXG5cdD8gd2luZG93ICAgLy8gaWYgaW4gYnJvd3NlclxuXHQ6IChcblx0XHQodHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUpXG5cdFx0PyBzZWxmIC8vIGlmIGluIHdvcmtlclxuXHRcdDoge30gICAvLyBpZiBpbiBub2RlIGpzXG5cdCk7XG5cbi8qKlxuICogUHJpc206IExpZ2h0d2VpZ2h0LCByb2J1c3QsIGVsZWdhbnQgc3ludGF4IGhpZ2hsaWdodGluZ1xuICogTUlUIGxpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAvXG4gKiBAYXV0aG9yIExlYSBWZXJvdSBodHRwOi8vbGVhLnZlcm91Lm1lXG4gKi9cblxudmFyIFByaXNtID0gKGZ1bmN0aW9uKCl7XG5cbi8vIFByaXZhdGUgaGVscGVyIHZhcnNcbnZhciBsYW5nID0gL1xcYmxhbmcoPzp1YWdlKT8tKD8hXFwqKShcXHcrKVxcYi9pO1xuXG52YXIgXyA9IF9zZWxmLlByaXNtID0ge1xuXHR1dGlsOiB7XG5cdFx0ZW5jb2RlOiBmdW5jdGlvbiAodG9rZW5zKSB7XG5cdFx0XHRpZiAodG9rZW5zIGluc3RhbmNlb2YgVG9rZW4pIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBUb2tlbih0b2tlbnMudHlwZSwgXy51dGlsLmVuY29kZSh0b2tlbnMuY29udGVudCksIHRva2Vucy5hbGlhcyk7XG5cdFx0XHR9IGVsc2UgaWYgKF8udXRpbC50eXBlKHRva2VucykgPT09ICdBcnJheScpIHtcblx0XHRcdFx0cmV0dXJuIHRva2Vucy5tYXAoXy51dGlsLmVuY29kZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gdG9rZW5zLnJlcGxhY2UoLyYvZywgJyZhbXA7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoL1xcdTAwYTAvZywgJyAnKTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0dHlwZTogZnVuY3Rpb24gKG8pIHtcblx0XHRcdHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykubWF0Y2goL1xcW29iamVjdCAoXFx3KylcXF0vKVsxXTtcblx0XHR9LFxuXG5cdFx0Ly8gRGVlcCBjbG9uZSBhIGxhbmd1YWdlIGRlZmluaXRpb24gKGUuZy4gdG8gZXh0ZW5kIGl0KVxuXHRcdGNsb25lOiBmdW5jdGlvbiAobykge1xuXHRcdFx0dmFyIHR5cGUgPSBfLnV0aWwudHlwZShvKTtcblxuXHRcdFx0c3dpdGNoICh0eXBlKSB7XG5cdFx0XHRcdGNhc2UgJ09iamVjdCc6XG5cdFx0XHRcdFx0dmFyIGNsb25lID0ge307XG5cblx0XHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gbykge1xuXHRcdFx0XHRcdFx0aWYgKG8uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuXHRcdFx0XHRcdFx0XHRjbG9uZVtrZXldID0gXy51dGlsLmNsb25lKG9ba2V5XSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cmV0dXJuIGNsb25lO1xuXG5cdFx0XHRcdGNhc2UgJ0FycmF5Jzpcblx0XHRcdFx0XHQvLyBDaGVjayBmb3IgZXhpc3RlbmNlIGZvciBJRThcblx0XHRcdFx0XHRyZXR1cm4gby5tYXAgJiYgby5tYXAoZnVuY3Rpb24odikgeyByZXR1cm4gXy51dGlsLmNsb25lKHYpOyB9KTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG87XG5cdFx0fVxuXHR9LFxuXG5cdGxhbmd1YWdlczoge1xuXHRcdGV4dGVuZDogZnVuY3Rpb24gKGlkLCByZWRlZikge1xuXHRcdFx0dmFyIGxhbmcgPSBfLnV0aWwuY2xvbmUoXy5sYW5ndWFnZXNbaWRdKTtcblxuXHRcdFx0Zm9yICh2YXIga2V5IGluIHJlZGVmKSB7XG5cdFx0XHRcdGxhbmdba2V5XSA9IHJlZGVmW2tleV07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBsYW5nO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBJbnNlcnQgYSB0b2tlbiBiZWZvcmUgYW5vdGhlciB0b2tlbiBpbiBhIGxhbmd1YWdlIGxpdGVyYWxcblx0XHQgKiBBcyB0aGlzIG5lZWRzIHRvIHJlY3JlYXRlIHRoZSBvYmplY3QgKHdlIGNhbm5vdCBhY3R1YWxseSBpbnNlcnQgYmVmb3JlIGtleXMgaW4gb2JqZWN0IGxpdGVyYWxzKSxcblx0XHQgKiB3ZSBjYW5ub3QganVzdCBwcm92aWRlIGFuIG9iamVjdCwgd2UgbmVlZCBhbm9iamVjdCBhbmQgYSBrZXkuXG5cdFx0ICogQHBhcmFtIGluc2lkZSBUaGUga2V5IChvciBsYW5ndWFnZSBpZCkgb2YgdGhlIHBhcmVudFxuXHRcdCAqIEBwYXJhbSBiZWZvcmUgVGhlIGtleSB0byBpbnNlcnQgYmVmb3JlLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBmdW5jdGlvbiBhcHBlbmRzIGluc3RlYWQuXG5cdFx0ICogQHBhcmFtIGluc2VydCBPYmplY3Qgd2l0aCB0aGUga2V5L3ZhbHVlIHBhaXJzIHRvIGluc2VydFxuXHRcdCAqIEBwYXJhbSByb290IFRoZSBvYmplY3QgdGhhdCBjb250YWlucyBgaW5zaWRlYC4gSWYgZXF1YWwgdG8gUHJpc20ubGFuZ3VhZ2VzLCBpdCBjYW4gYmUgb21pdHRlZC5cblx0XHQgKi9cblx0XHRpbnNlcnRCZWZvcmU6IGZ1bmN0aW9uIChpbnNpZGUsIGJlZm9yZSwgaW5zZXJ0LCByb290KSB7XG5cdFx0XHRyb290ID0gcm9vdCB8fCBfLmxhbmd1YWdlcztcblx0XHRcdHZhciBncmFtbWFyID0gcm9vdFtpbnNpZGVdO1xuXHRcdFx0XG5cdFx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSB7XG5cdFx0XHRcdGluc2VydCA9IGFyZ3VtZW50c1sxXTtcblx0XHRcdFx0XG5cdFx0XHRcdGZvciAodmFyIG5ld1Rva2VuIGluIGluc2VydCkge1xuXHRcdFx0XHRcdGlmIChpbnNlcnQuaGFzT3duUHJvcGVydHkobmV3VG9rZW4pKSB7XG5cdFx0XHRcdFx0XHRncmFtbWFyW25ld1Rva2VuXSA9IGluc2VydFtuZXdUb2tlbl07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRyZXR1cm4gZ3JhbW1hcjtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0dmFyIHJldCA9IHt9O1xuXG5cdFx0XHRmb3IgKHZhciB0b2tlbiBpbiBncmFtbWFyKSB7XG5cblx0XHRcdFx0aWYgKGdyYW1tYXIuaGFzT3duUHJvcGVydHkodG9rZW4pKSB7XG5cblx0XHRcdFx0XHRpZiAodG9rZW4gPT0gYmVmb3JlKSB7XG5cblx0XHRcdFx0XHRcdGZvciAodmFyIG5ld1Rva2VuIGluIGluc2VydCkge1xuXG5cdFx0XHRcdFx0XHRcdGlmIChpbnNlcnQuaGFzT3duUHJvcGVydHkobmV3VG9rZW4pKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0W25ld1Rva2VuXSA9IGluc2VydFtuZXdUb2tlbl07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXRbdG9rZW5dID0gZ3JhbW1hclt0b2tlbl07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ly8gVXBkYXRlIHJlZmVyZW5jZXMgaW4gb3RoZXIgbGFuZ3VhZ2UgZGVmaW5pdGlvbnNcblx0XHRcdF8ubGFuZ3VhZ2VzLkRGUyhfLmxhbmd1YWdlcywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuXHRcdFx0XHRpZiAodmFsdWUgPT09IHJvb3RbaW5zaWRlXSAmJiBrZXkgIT0gaW5zaWRlKSB7XG5cdFx0XHRcdFx0dGhpc1trZXldID0gcmV0O1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuIHJvb3RbaW5zaWRlXSA9IHJldDtcblx0XHR9LFxuXG5cdFx0Ly8gVHJhdmVyc2UgYSBsYW5ndWFnZSBkZWZpbml0aW9uIHdpdGggRGVwdGggRmlyc3QgU2VhcmNoXG5cdFx0REZTOiBmdW5jdGlvbihvLCBjYWxsYmFjaywgdHlwZSkge1xuXHRcdFx0Zm9yICh2YXIgaSBpbiBvKSB7XG5cdFx0XHRcdGlmIChvLmhhc093blByb3BlcnR5KGkpKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2suY2FsbChvLCBpLCBvW2ldLCB0eXBlIHx8IGkpO1xuXG5cdFx0XHRcdFx0aWYgKF8udXRpbC50eXBlKG9baV0pID09PSAnT2JqZWN0Jykge1xuXHRcdFx0XHRcdFx0Xy5sYW5ndWFnZXMuREZTKG9baV0sIGNhbGxiYWNrKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSBpZiAoXy51dGlsLnR5cGUob1tpXSkgPT09ICdBcnJheScpIHtcblx0XHRcdFx0XHRcdF8ubGFuZ3VhZ2VzLkRGUyhvW2ldLCBjYWxsYmFjaywgaSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRwbHVnaW5zOiB7fSxcblx0XG5cdGhpZ2hsaWdodEFsbDogZnVuY3Rpb24oYXN5bmMsIGNhbGxiYWNrKSB7XG5cdFx0dmFyIGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sIFtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gY29kZSwgY29kZVtjbGFzcyo9XCJsYW5nLVwiXSwgW2NsYXNzKj1cImxhbmctXCJdIGNvZGUnKTtcblxuXHRcdGZvciAodmFyIGk9MCwgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnRzW2krK107KSB7XG5cdFx0XHRfLmhpZ2hsaWdodEVsZW1lbnQoZWxlbWVudCwgYXN5bmMgPT09IHRydWUsIGNhbGxiYWNrKTtcblx0XHR9XG5cdH0sXG5cblx0aGlnaGxpZ2h0RWxlbWVudDogZnVuY3Rpb24oZWxlbWVudCwgYXN5bmMsIGNhbGxiYWNrKSB7XG5cdFx0Ly8gRmluZCBsYW5ndWFnZVxuXHRcdHZhciBsYW5ndWFnZSwgZ3JhbW1hciwgcGFyZW50ID0gZWxlbWVudDtcblxuXHRcdHdoaWxlIChwYXJlbnQgJiYgIWxhbmcudGVzdChwYXJlbnQuY2xhc3NOYW1lKSkge1xuXHRcdFx0cGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGU7XG5cdFx0fVxuXG5cdFx0aWYgKHBhcmVudCkge1xuXHRcdFx0bGFuZ3VhZ2UgPSAocGFyZW50LmNsYXNzTmFtZS5tYXRjaChsYW5nKSB8fCBbLCcnXSlbMV07XG5cdFx0XHRncmFtbWFyID0gXy5sYW5ndWFnZXNbbGFuZ3VhZ2VdO1xuXHRcdH1cblxuXHRcdC8vIFNldCBsYW5ndWFnZSBvbiB0aGUgZWxlbWVudCwgaWYgbm90IHByZXNlbnRcblx0XHRlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UobGFuZywgJycpLnJlcGxhY2UoL1xccysvZywgJyAnKSArICcgbGFuZ3VhZ2UtJyArIGxhbmd1YWdlO1xuXG5cdFx0Ly8gU2V0IGxhbmd1YWdlIG9uIHRoZSBwYXJlbnQsIGZvciBzdHlsaW5nXG5cdFx0cGFyZW50ID0gZWxlbWVudC5wYXJlbnROb2RlO1xuXG5cdFx0aWYgKC9wcmUvaS50ZXN0KHBhcmVudC5ub2RlTmFtZSkpIHtcblx0XHRcdHBhcmVudC5jbGFzc05hbWUgPSBwYXJlbnQuY2xhc3NOYW1lLnJlcGxhY2UobGFuZywgJycpLnJlcGxhY2UoL1xccysvZywgJyAnKSArICcgbGFuZ3VhZ2UtJyArIGxhbmd1YWdlO1xuXHRcdH1cblxuXHRcdHZhciBjb2RlID0gZWxlbWVudC50ZXh0Q29udGVudDtcblxuXHRcdHZhciBlbnYgPSB7XG5cdFx0XHRlbGVtZW50OiBlbGVtZW50LFxuXHRcdFx0bGFuZ3VhZ2U6IGxhbmd1YWdlLFxuXHRcdFx0Z3JhbW1hcjogZ3JhbW1hcixcblx0XHRcdGNvZGU6IGNvZGVcblx0XHR9O1xuXG5cdFx0aWYgKCFjb2RlIHx8ICFncmFtbWFyKSB7XG5cdFx0XHRfLmhvb2tzLnJ1bignY29tcGxldGUnLCBlbnYpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdF8uaG9va3MucnVuKCdiZWZvcmUtaGlnaGxpZ2h0JywgZW52KTtcblxuXHRcdGlmIChhc3luYyAmJiBfc2VsZi5Xb3JrZXIpIHtcblx0XHRcdHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKF8uZmlsZW5hbWUpO1xuXG5cdFx0XHR3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7XG5cdFx0XHRcdGVudi5oaWdobGlnaHRlZENvZGUgPSBldnQuZGF0YTtcblxuXHRcdFx0XHRfLmhvb2tzLnJ1bignYmVmb3JlLWluc2VydCcsIGVudik7XG5cblx0XHRcdFx0ZW52LmVsZW1lbnQuaW5uZXJIVE1MID0gZW52LmhpZ2hsaWdodGVkQ29kZTtcblxuXHRcdFx0XHRjYWxsYmFjayAmJiBjYWxsYmFjay5jYWxsKGVudi5lbGVtZW50KTtcblx0XHRcdFx0Xy5ob29rcy5ydW4oJ2FmdGVyLWhpZ2hsaWdodCcsIGVudik7XG5cdFx0XHRcdF8uaG9va3MucnVuKCdjb21wbGV0ZScsIGVudik7XG5cdFx0XHR9O1xuXG5cdFx0XHR3b3JrZXIucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuXHRcdFx0XHRsYW5ndWFnZTogZW52Lmxhbmd1YWdlLFxuXHRcdFx0XHRjb2RlOiBlbnYuY29kZSxcblx0XHRcdFx0aW1tZWRpYXRlQ2xvc2U6IHRydWVcblx0XHRcdH0pKTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHRlbnYuaGlnaGxpZ2h0ZWRDb2RlID0gXy5oaWdobGlnaHQoZW52LmNvZGUsIGVudi5ncmFtbWFyLCBlbnYubGFuZ3VhZ2UpO1xuXG5cdFx0XHRfLmhvb2tzLnJ1bignYmVmb3JlLWluc2VydCcsIGVudik7XG5cblx0XHRcdGVudi5lbGVtZW50LmlubmVySFRNTCA9IGVudi5oaWdobGlnaHRlZENvZGU7XG5cblx0XHRcdGNhbGxiYWNrICYmIGNhbGxiYWNrLmNhbGwoZWxlbWVudCk7XG5cblx0XHRcdF8uaG9va3MucnVuKCdhZnRlci1oaWdobGlnaHQnLCBlbnYpO1xuXHRcdFx0Xy5ob29rcy5ydW4oJ2NvbXBsZXRlJywgZW52KTtcblx0XHR9XG5cdH0sXG5cblx0aGlnaGxpZ2h0OiBmdW5jdGlvbiAodGV4dCwgZ3JhbW1hciwgbGFuZ3VhZ2UpIHtcblx0XHR2YXIgdG9rZW5zID0gXy50b2tlbml6ZSh0ZXh0LCBncmFtbWFyKTtcblx0XHRyZXR1cm4gVG9rZW4uc3RyaW5naWZ5KF8udXRpbC5lbmNvZGUodG9rZW5zKSwgbGFuZ3VhZ2UpO1xuXHR9LFxuXG5cdHRva2VuaXplOiBmdW5jdGlvbih0ZXh0LCBncmFtbWFyLCBsYW5ndWFnZSkge1xuXHRcdHZhciBUb2tlbiA9IF8uVG9rZW47XG5cblx0XHR2YXIgc3RyYXJyID0gW3RleHRdO1xuXG5cdFx0dmFyIHJlc3QgPSBncmFtbWFyLnJlc3Q7XG5cblx0XHRpZiAocmVzdCkge1xuXHRcdFx0Zm9yICh2YXIgdG9rZW4gaW4gcmVzdCkge1xuXHRcdFx0XHRncmFtbWFyW3Rva2VuXSA9IHJlc3RbdG9rZW5dO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWxldGUgZ3JhbW1hci5yZXN0O1xuXHRcdH1cblxuXHRcdHRva2VubG9vcDogZm9yICh2YXIgdG9rZW4gaW4gZ3JhbW1hcikge1xuXHRcdFx0aWYoIWdyYW1tYXIuaGFzT3duUHJvcGVydHkodG9rZW4pIHx8ICFncmFtbWFyW3Rva2VuXSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0dmFyIHBhdHRlcm5zID0gZ3JhbW1hclt0b2tlbl07XG5cdFx0XHRwYXR0ZXJucyA9IChfLnV0aWwudHlwZShwYXR0ZXJucykgPT09IFwiQXJyYXlcIikgPyBwYXR0ZXJucyA6IFtwYXR0ZXJuc107XG5cblx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgcGF0dGVybnMubGVuZ3RoOyArK2opIHtcblx0XHRcdFx0dmFyIHBhdHRlcm4gPSBwYXR0ZXJuc1tqXSxcblx0XHRcdFx0XHRpbnNpZGUgPSBwYXR0ZXJuLmluc2lkZSxcblx0XHRcdFx0XHRsb29rYmVoaW5kID0gISFwYXR0ZXJuLmxvb2tiZWhpbmQsXG5cdFx0XHRcdFx0bG9va2JlaGluZExlbmd0aCA9IDAsXG5cdFx0XHRcdFx0YWxpYXMgPSBwYXR0ZXJuLmFsaWFzO1xuXG5cdFx0XHRcdHBhdHRlcm4gPSBwYXR0ZXJuLnBhdHRlcm4gfHwgcGF0dGVybjtcblxuXHRcdFx0XHRmb3IgKHZhciBpPTA7IGk8c3RyYXJyLmxlbmd0aDsgaSsrKSB7IC8vIERvbuKAmXQgY2FjaGUgbGVuZ3RoIGFzIGl0IGNoYW5nZXMgZHVyaW5nIHRoZSBsb29wXG5cblx0XHRcdFx0XHR2YXIgc3RyID0gc3RyYXJyW2ldO1xuXG5cdFx0XHRcdFx0aWYgKHN0cmFyci5sZW5ndGggPiB0ZXh0Lmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0Ly8gU29tZXRoaW5nIHdlbnQgdGVycmlibHkgd3JvbmcsIEFCT1JULCBBQk9SVCFcblx0XHRcdFx0XHRcdGJyZWFrIHRva2VubG9vcDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoc3RyIGluc3RhbmNlb2YgVG9rZW4pIHtcblx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHBhdHRlcm4ubGFzdEluZGV4ID0gMDtcblxuXHRcdFx0XHRcdHZhciBtYXRjaCA9IHBhdHRlcm4uZXhlYyhzdHIpO1xuXG5cdFx0XHRcdFx0aWYgKG1hdGNoKSB7XG5cdFx0XHRcdFx0XHRpZihsb29rYmVoaW5kKSB7XG5cdFx0XHRcdFx0XHRcdGxvb2tiZWhpbmRMZW5ndGggPSBtYXRjaFsxXS5sZW5ndGg7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHZhciBmcm9tID0gbWF0Y2guaW5kZXggLSAxICsgbG9va2JlaGluZExlbmd0aCxcblx0XHRcdFx0XHRcdFx0bWF0Y2ggPSBtYXRjaFswXS5zbGljZShsb29rYmVoaW5kTGVuZ3RoKSxcblx0XHRcdFx0XHRcdFx0bGVuID0gbWF0Y2gubGVuZ3RoLFxuXHRcdFx0XHRcdFx0XHR0byA9IGZyb20gKyBsZW4sXG5cdFx0XHRcdFx0XHRcdGJlZm9yZSA9IHN0ci5zbGljZSgwLCBmcm9tICsgMSksXG5cdFx0XHRcdFx0XHRcdGFmdGVyID0gc3RyLnNsaWNlKHRvICsgMSk7XG5cblx0XHRcdFx0XHRcdHZhciBhcmdzID0gW2ksIDFdO1xuXG5cdFx0XHRcdFx0XHRpZiAoYmVmb3JlKSB7XG5cdFx0XHRcdFx0XHRcdGFyZ3MucHVzaChiZWZvcmUpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHR2YXIgd3JhcHBlZCA9IG5ldyBUb2tlbih0b2tlbiwgaW5zaWRlPyBfLnRva2VuaXplKG1hdGNoLCBpbnNpZGUpIDogbWF0Y2gsIGFsaWFzKTtcblxuXHRcdFx0XHRcdFx0YXJncy5wdXNoKHdyYXBwZWQpO1xuXG5cdFx0XHRcdFx0XHRpZiAoYWZ0ZXIpIHtcblx0XHRcdFx0XHRcdFx0YXJncy5wdXNoKGFmdGVyKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0QXJyYXkucHJvdG90eXBlLnNwbGljZS5hcHBseShzdHJhcnIsIGFyZ3MpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBzdHJhcnI7XG5cdH0sXG5cblx0aG9va3M6IHtcblx0XHRhbGw6IHt9LFxuXG5cdFx0YWRkOiBmdW5jdGlvbiAobmFtZSwgY2FsbGJhY2spIHtcblx0XHRcdHZhciBob29rcyA9IF8uaG9va3MuYWxsO1xuXG5cdFx0XHRob29rc1tuYW1lXSA9IGhvb2tzW25hbWVdIHx8IFtdO1xuXG5cdFx0XHRob29rc1tuYW1lXS5wdXNoKGNhbGxiYWNrKTtcblx0XHR9LFxuXG5cdFx0cnVuOiBmdW5jdGlvbiAobmFtZSwgZW52KSB7XG5cdFx0XHR2YXIgY2FsbGJhY2tzID0gXy5ob29rcy5hbGxbbmFtZV07XG5cblx0XHRcdGlmICghY2FsbGJhY2tzIHx8ICFjYWxsYmFja3MubGVuZ3RoKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Zm9yICh2YXIgaT0wLCBjYWxsYmFjazsgY2FsbGJhY2sgPSBjYWxsYmFja3NbaSsrXTspIHtcblx0XHRcdFx0Y2FsbGJhY2soZW52KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbnZhciBUb2tlbiA9IF8uVG9rZW4gPSBmdW5jdGlvbih0eXBlLCBjb250ZW50LCBhbGlhcykge1xuXHR0aGlzLnR5cGUgPSB0eXBlO1xuXHR0aGlzLmNvbnRlbnQgPSBjb250ZW50O1xuXHR0aGlzLmFsaWFzID0gYWxpYXM7XG59O1xuXG5Ub2tlbi5zdHJpbmdpZnkgPSBmdW5jdGlvbihvLCBsYW5ndWFnZSwgcGFyZW50KSB7XG5cdGlmICh0eXBlb2YgbyA9PSAnc3RyaW5nJykge1xuXHRcdHJldHVybiBvO1xuXHR9XG5cblx0aWYgKF8udXRpbC50eXBlKG8pID09PSAnQXJyYXknKSB7XG5cdFx0cmV0dXJuIG8ubWFwKGZ1bmN0aW9uKGVsZW1lbnQpIHtcblx0XHRcdHJldHVybiBUb2tlbi5zdHJpbmdpZnkoZWxlbWVudCwgbGFuZ3VhZ2UsIG8pO1xuXHRcdH0pLmpvaW4oJycpO1xuXHR9XG5cblx0dmFyIGVudiA9IHtcblx0XHR0eXBlOiBvLnR5cGUsXG5cdFx0Y29udGVudDogVG9rZW4uc3RyaW5naWZ5KG8uY29udGVudCwgbGFuZ3VhZ2UsIHBhcmVudCksXG5cdFx0dGFnOiAnc3BhbicsXG5cdFx0Y2xhc3NlczogWyd0b2tlbicsIG8udHlwZV0sXG5cdFx0YXR0cmlidXRlczoge30sXG5cdFx0bGFuZ3VhZ2U6IGxhbmd1YWdlLFxuXHRcdHBhcmVudDogcGFyZW50XG5cdH07XG5cblx0aWYgKGVudi50eXBlID09ICdjb21tZW50Jykge1xuXHRcdGVudi5hdHRyaWJ1dGVzWydzcGVsbGNoZWNrJ10gPSAndHJ1ZSc7XG5cdH1cblxuXHRpZiAoby5hbGlhcykge1xuXHRcdHZhciBhbGlhc2VzID0gXy51dGlsLnR5cGUoby5hbGlhcykgPT09ICdBcnJheScgPyBvLmFsaWFzIDogW28uYWxpYXNdO1xuXHRcdEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGVudi5jbGFzc2VzLCBhbGlhc2VzKTtcblx0fVxuXG5cdF8uaG9va3MucnVuKCd3cmFwJywgZW52KTtcblxuXHR2YXIgYXR0cmlidXRlcyA9ICcnO1xuXG5cdGZvciAodmFyIG5hbWUgaW4gZW52LmF0dHJpYnV0ZXMpIHtcblx0XHRhdHRyaWJ1dGVzICs9IChhdHRyaWJ1dGVzID8gJyAnIDogJycpICsgbmFtZSArICc9XCInICsgKGVudi5hdHRyaWJ1dGVzW25hbWVdIHx8ICcnKSArICdcIic7XG5cdH1cblxuXHRyZXR1cm4gJzwnICsgZW52LnRhZyArICcgY2xhc3M9XCInICsgZW52LmNsYXNzZXMuam9pbignICcpICsgJ1wiICcgKyBhdHRyaWJ1dGVzICsgJz4nICsgZW52LmNvbnRlbnQgKyAnPC8nICsgZW52LnRhZyArICc+JztcblxufTtcblxuaWYgKCFfc2VsZi5kb2N1bWVudCkge1xuXHRpZiAoIV9zZWxmLmFkZEV2ZW50TGlzdGVuZXIpIHtcblx0XHQvLyBpbiBOb2RlLmpzXG5cdFx0cmV0dXJuIF9zZWxmLlByaXNtO1xuXHR9XG4gXHQvLyBJbiB3b3JrZXJcblx0X3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGV2dCkge1xuXHRcdHZhciBtZXNzYWdlID0gSlNPTi5wYXJzZShldnQuZGF0YSksXG5cdFx0ICAgIGxhbmcgPSBtZXNzYWdlLmxhbmd1YWdlLFxuXHRcdCAgICBjb2RlID0gbWVzc2FnZS5jb2RlLFxuXHRcdCAgICBpbW1lZGlhdGVDbG9zZSA9IG1lc3NhZ2UuaW1tZWRpYXRlQ2xvc2U7XG5cblx0XHRfc2VsZi5wb3N0TWVzc2FnZShfLmhpZ2hsaWdodChjb2RlLCBfLmxhbmd1YWdlc1tsYW5nXSwgbGFuZykpO1xuXHRcdGlmIChpbW1lZGlhdGVDbG9zZSkge1xuXHRcdFx0X3NlbGYuY2xvc2UoKTtcblx0XHR9XG5cdH0sIGZhbHNlKTtcblxuXHRyZXR1cm4gX3NlbGYuUHJpc207XG59XG5cbi8vIEdldCBjdXJyZW50IHNjcmlwdCBhbmQgaGlnaGxpZ2h0XG52YXIgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpO1xuXG5zY3JpcHQgPSBzY3JpcHRbc2NyaXB0Lmxlbmd0aCAtIDFdO1xuXG5pZiAoc2NyaXB0KSB7XG5cdF8uZmlsZW5hbWUgPSBzY3JpcHQuc3JjO1xuXG5cdGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICYmICFzY3JpcHQuaGFzQXR0cmlidXRlKCdkYXRhLW1hbnVhbCcpKSB7XG5cdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIF8uaGlnaGxpZ2h0QWxsKTtcblx0fVxufVxuXG5yZXR1cm4gX3NlbGYuUHJpc207XG5cbn0pKCk7XG5cbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykge1xuXHRtb2R1bGUuZXhwb3J0cyA9IFByaXNtO1xufVxuXG4vLyBoYWNrIGZvciBjb21wb25lbnRzIHRvIHdvcmsgY29ycmVjdGx5IGluIG5vZGUuanNcbmlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJykge1xuXHRnbG9iYWwuUHJpc20gPSBQcmlzbTtcbn1cblxuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIEJlZ2luIHByaXNtLW1hcmt1cC5qc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuXG5QcmlzbS5sYW5ndWFnZXMubWFya3VwID0ge1xuXHQnY29tbWVudCc6IC88IS0tW1xcd1xcV10qPy0tPi8sXG5cdCdwcm9sb2cnOiAvPFxcP1tcXHdcXFddKz9cXD8+Lyxcblx0J2RvY3R5cGUnOiAvPCFET0NUWVBFW1xcd1xcV10rPz4vLFxuXHQnY2RhdGEnOiAvPCFcXFtDREFUQVxcW1tcXHdcXFddKj9dXT4vaSxcblx0J3RhZyc6IHtcblx0XHRwYXR0ZXJuOiAvPFxcLz8oPyFcXGQpW15cXHM+XFwvPS4kPF0rKD86XFxzK1teXFxzPlxcLz1dKyg/Oj0oPzooXCJ8JykoPzpcXFxcXFwxfFxcXFw/KD8hXFwxKVtcXHdcXFddKSpcXDF8W15cXHMnXCI+PV0rKSk/KSpcXHMqXFwvPz4vaSxcblx0XHRpbnNpZGU6IHtcblx0XHRcdCd0YWcnOiB7XG5cdFx0XHRcdHBhdHRlcm46IC9ePFxcLz9bXlxccz5cXC9dKy9pLFxuXHRcdFx0XHRpbnNpZGU6IHtcblx0XHRcdFx0XHQncHVuY3R1YXRpb24nOiAvXjxcXC8/Lyxcblx0XHRcdFx0XHQnbmFtZXNwYWNlJzogL15bXlxccz5cXC86XSs6L1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0J2F0dHItdmFsdWUnOiB7XG5cdFx0XHRcdHBhdHRlcm46IC89KD86KCd8XCIpW1xcd1xcV10qPyhcXDEpfFteXFxzPl0rKS9pLFxuXHRcdFx0XHRpbnNpZGU6IHtcblx0XHRcdFx0XHQncHVuY3R1YXRpb24nOiAvWz0+XCInXS9cblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdCdwdW5jdHVhdGlvbic6IC9cXC8/Pi8sXG5cdFx0XHQnYXR0ci1uYW1lJzoge1xuXHRcdFx0XHRwYXR0ZXJuOiAvW15cXHM+XFwvXSsvLFxuXHRcdFx0XHRpbnNpZGU6IHtcblx0XHRcdFx0XHQnbmFtZXNwYWNlJzogL15bXlxccz5cXC86XSs6L1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cdH0sXG5cdCdlbnRpdHknOiAvJiM/W1xcZGEtel17MSw4fTsvaVxufTtcblxuLy8gUGx1Z2luIHRvIG1ha2UgZW50aXR5IHRpdGxlIHNob3cgdGhlIHJlYWwgZW50aXR5LCBpZGVhIGJ5IFJvbWFuIEtvbWFyb3ZcblByaXNtLmhvb2tzLmFkZCgnd3JhcCcsIGZ1bmN0aW9uKGVudikge1xuXG5cdGlmIChlbnYudHlwZSA9PT0gJ2VudGl0eScpIHtcblx0XHRlbnYuYXR0cmlidXRlc1sndGl0bGUnXSA9IGVudi5jb250ZW50LnJlcGxhY2UoLyZhbXA7LywgJyYnKTtcblx0fVxufSk7XG5cblByaXNtLmxhbmd1YWdlcy54bWwgPSBQcmlzbS5sYW5ndWFnZXMubWFya3VwO1xuUHJpc20ubGFuZ3VhZ2VzLmh0bWwgPSBQcmlzbS5sYW5ndWFnZXMubWFya3VwO1xuUHJpc20ubGFuZ3VhZ2VzLm1hdGhtbCA9IFByaXNtLmxhbmd1YWdlcy5tYXJrdXA7XG5QcmlzbS5sYW5ndWFnZXMuc3ZnID0gUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cDtcblxuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIEJlZ2luIHByaXNtLWNzcy5qc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuXG5QcmlzbS5sYW5ndWFnZXMuY3NzID0ge1xuXHQnY29tbWVudCc6IC9cXC9cXCpbXFx3XFxXXSo/XFwqXFwvLyxcblx0J2F0cnVsZSc6IHtcblx0XHRwYXR0ZXJuOiAvQFtcXHctXSs/Lio/KDt8KD89XFxzKlxceykpL2ksXG5cdFx0aW5zaWRlOiB7XG5cdFx0XHQncnVsZSc6IC9AW1xcdy1dKy9cblx0XHRcdC8vIFNlZSByZXN0IGJlbG93XG5cdFx0fVxuXHR9LFxuXHQndXJsJzogL3VybFxcKCg/OihbXCInXSkoXFxcXCg/OlxcclxcbnxbXFx3XFxXXSl8KD8hXFwxKVteXFxcXFxcclxcbl0pKlxcMXwuKj8pXFwpL2ksXG5cdCdzZWxlY3Rvcic6IC9bXlxce1xcfVxcc11bXlxce1xcfTtdKj8oPz1cXHMqXFx7KS8sXG5cdCdzdHJpbmcnOiAvKFwifCcpKFxcXFwoPzpcXHJcXG58W1xcd1xcV10pfCg/IVxcMSlbXlxcXFxcXHJcXG5dKSpcXDEvLFxuXHQncHJvcGVydHknOiAvKFxcYnxcXEIpW1xcdy1dKyg/PVxccyo6KS9pLFxuXHQnaW1wb3J0YW50JzogL1xcQiFpbXBvcnRhbnRcXGIvaSxcblx0J2Z1bmN0aW9uJzogL1stYS16MC05XSsoPz1cXCgpL2ksXG5cdCdwdW5jdHVhdGlvbic6IC9bKCl7fTs6XS9cbn07XG5cblByaXNtLmxhbmd1YWdlcy5jc3NbJ2F0cnVsZSddLmluc2lkZS5yZXN0ID0gUHJpc20udXRpbC5jbG9uZShQcmlzbS5sYW5ndWFnZXMuY3NzKTtcblxuaWYgKFByaXNtLmxhbmd1YWdlcy5tYXJrdXApIHtcblx0UHJpc20ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgnbWFya3VwJywgJ3RhZycsIHtcblx0XHQnc3R5bGUnOiB7XG5cdFx0XHRwYXR0ZXJuOiAvKDxzdHlsZVtcXHdcXFddKj8+KVtcXHdcXFddKj8oPz08XFwvc3R5bGU+KS9pLFxuXHRcdFx0bG9va2JlaGluZDogdHJ1ZSxcblx0XHRcdGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzLmNzcyxcblx0XHRcdGFsaWFzOiAnbGFuZ3VhZ2UtY3NzJ1xuXHRcdH1cblx0fSk7XG5cdFxuXHRQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCdpbnNpZGUnLCAnYXR0ci12YWx1ZScsIHtcblx0XHQnc3R5bGUtYXR0cic6IHtcblx0XHRcdHBhdHRlcm46IC9cXHMqc3R5bGU9KFwifCcpLio/XFwxL2ksXG5cdFx0XHRpbnNpZGU6IHtcblx0XHRcdFx0J2F0dHItbmFtZSc6IHtcblx0XHRcdFx0XHRwYXR0ZXJuOiAvXlxccypzdHlsZS9pLFxuXHRcdFx0XHRcdGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cC50YWcuaW5zaWRlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCdwdW5jdHVhdGlvbic6IC9eXFxzKj1cXHMqWydcIl18WydcIl1cXHMqJC8sXG5cdFx0XHRcdCdhdHRyLXZhbHVlJzoge1xuXHRcdFx0XHRcdHBhdHRlcm46IC8uKy9pLFxuXHRcdFx0XHRcdGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzLmNzc1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0YWxpYXM6ICdsYW5ndWFnZS1jc3MnXG5cdFx0fVxuXHR9LCBQcmlzbS5sYW5ndWFnZXMubWFya3VwLnRhZyk7XG59XG5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgQmVnaW4gcHJpc20tY2xpa2UuanNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cblxuUHJpc20ubGFuZ3VhZ2VzLmNsaWtlID0ge1xuXHQnY29tbWVudCc6IFtcblx0XHR7XG5cdFx0XHRwYXR0ZXJuOiAvKF58W15cXFxcXSlcXC9cXCpbXFx3XFxXXSo/XFwqXFwvLyxcblx0XHRcdGxvb2tiZWhpbmQ6IHRydWVcblx0XHR9LFxuXHRcdHtcblx0XHRcdHBhdHRlcm46IC8oXnxbXlxcXFw6XSlcXC9cXC8uKi8sXG5cdFx0XHRsb29rYmVoaW5kOiB0cnVlXG5cdFx0fVxuXHRdLFxuXHQnc3RyaW5nJzogLyhbXCInXSkoXFxcXCg/OlxcclxcbnxbXFxzXFxTXSl8KD8hXFwxKVteXFxcXFxcclxcbl0pKlxcMS8sXG5cdCdjbGFzcy1uYW1lJzoge1xuXHRcdHBhdHRlcm46IC8oKD86XFxiKD86Y2xhc3N8aW50ZXJmYWNlfGV4dGVuZHN8aW1wbGVtZW50c3x0cmFpdHxpbnN0YW5jZW9mfG5ldylcXHMrKXwoPzpjYXRjaFxccytcXCgpKVthLXowLTlfXFwuXFxcXF0rL2ksXG5cdFx0bG9va2JlaGluZDogdHJ1ZSxcblx0XHRpbnNpZGU6IHtcblx0XHRcdHB1bmN0dWF0aW9uOiAvKFxcLnxcXFxcKS9cblx0XHR9XG5cdH0sXG5cdCdrZXl3b3JkJzogL1xcYihpZnxlbHNlfHdoaWxlfGRvfGZvcnxyZXR1cm58aW58aW5zdGFuY2VvZnxmdW5jdGlvbnxuZXd8dHJ5fHRocm93fGNhdGNofGZpbmFsbHl8bnVsbHxicmVha3xjb250aW51ZSlcXGIvLFxuXHQnYm9vbGVhbic6IC9cXGIodHJ1ZXxmYWxzZSlcXGIvLFxuXHQnZnVuY3Rpb24nOiAvW2EtejAtOV9dKyg/PVxcKCkvaSxcblx0J251bWJlcic6IC9cXGItPyg/OjB4W1xcZGEtZl0rfFxcZCpcXC4/XFxkKyg/OmVbKy1dP1xcZCspPylcXGIvaSxcblx0J29wZXJhdG9yJzogLy0tP3xcXCtcXCs/fCE9Pz0/fDw9P3w+PT98PT0/PT98JiY/fFxcfFxcfD98XFw/fFxcKnxcXC98fnxcXF58JS8sXG5cdCdwdW5jdHVhdGlvbic6IC9be31bXFxdOygpLC46XS9cbn07XG5cblxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBCZWdpbiBwcmlzbS1qYXZhc2NyaXB0LmpzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5cblByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0ID0gUHJpc20ubGFuZ3VhZ2VzLmV4dGVuZCgnY2xpa2UnLCB7XG5cdCdrZXl3b3JkJzogL1xcYihhc3xhc3luY3xhd2FpdHxicmVha3xjYXNlfGNhdGNofGNsYXNzfGNvbnN0fGNvbnRpbnVlfGRlYnVnZ2VyfGRlZmF1bHR8ZGVsZXRlfGRvfGVsc2V8ZW51bXxleHBvcnR8ZXh0ZW5kc3xmaW5hbGx5fGZvcnxmcm9tfGZ1bmN0aW9ufGdldHxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbnxpbnN0YW5jZW9mfGludGVyZmFjZXxsZXR8bmV3fG51bGx8b2Z8cGFja2FnZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmV0dXJufHNldHxzdGF0aWN8c3VwZXJ8c3dpdGNofHRoaXN8dGhyb3d8dHJ5fHR5cGVvZnx2YXJ8dm9pZHx3aGlsZXx3aXRofHlpZWxkKVxcYi8sXG5cdCdudW1iZXInOiAvXFxiLT8oMHhbXFxkQS1GYS1mXSt8MGJbMDFdK3wwb1swLTddK3xcXGQqXFwuP1xcZCsoW0VlXVsrLV0/XFxkKyk/fE5hTnxJbmZpbml0eSlcXGIvLFxuXHQvLyBBbGxvdyBmb3IgYWxsIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIChTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjAwODQ0NClcblx0J2Z1bmN0aW9uJzogL1tfJGEtekEtWlxceEEwLVxcdUZGRkZdW18kYS16QS1aMC05XFx4QTAtXFx1RkZGRl0qKD89XFwoKS9pXG59KTtcblxuUHJpc20ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgnamF2YXNjcmlwdCcsICdrZXl3b3JkJywge1xuXHQncmVnZXgnOiB7XG5cdFx0cGF0dGVybjogLyhefFteL10pXFwvKD8hXFwvKShcXFsuKz9dfFxcXFwufFteL1xcXFxcXHJcXG5dKStcXC9bZ2lteXVdezAsNX0oPz1cXHMqKCR8W1xcclxcbiwuO30pXSkpLyxcblx0XHRsb29rYmVoaW5kOiB0cnVlXG5cdH1cbn0pO1xuXG5QcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCdqYXZhc2NyaXB0JywgJ2NsYXNzLW5hbWUnLCB7XG5cdCd0ZW1wbGF0ZS1zdHJpbmcnOiB7XG5cdFx0cGF0dGVybjogL2AoPzpcXFxcYHxcXFxcP1teYF0pKmAvLFxuXHRcdGluc2lkZToge1xuXHRcdFx0J2ludGVycG9sYXRpb24nOiB7XG5cdFx0XHRcdHBhdHRlcm46IC9cXCRcXHtbXn1dK1xcfS8sXG5cdFx0XHRcdGluc2lkZToge1xuXHRcdFx0XHRcdCdpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uJzoge1xuXHRcdFx0XHRcdFx0cGF0dGVybjogL15cXCRcXHt8XFx9JC8sXG5cdFx0XHRcdFx0XHRhbGlhczogJ3B1bmN0dWF0aW9uJ1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0cmVzdDogUHJpc20ubGFuZ3VhZ2VzLmphdmFzY3JpcHRcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdCdzdHJpbmcnOiAvW1xcc1xcU10rL1xuXHRcdH1cblx0fVxufSk7XG5cbmlmIChQcmlzbS5sYW5ndWFnZXMubWFya3VwKSB7XG5cdFByaXNtLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoJ21hcmt1cCcsICd0YWcnLCB7XG5cdFx0J3NjcmlwdCc6IHtcblx0XHRcdHBhdHRlcm46IC8oPHNjcmlwdFtcXHdcXFddKj8+KVtcXHdcXFddKj8oPz08XFwvc2NyaXB0PikvaSxcblx0XHRcdGxvb2tiZWhpbmQ6IHRydWUsXG5cdFx0XHRpbnNpZGU6IFByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0LFxuXHRcdFx0YWxpYXM6ICdsYW5ndWFnZS1qYXZhc2NyaXB0J1xuXHRcdH1cblx0fSk7XG59XG5cblByaXNtLmxhbmd1YWdlcy5qcyA9IFByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0O1xuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIEJlZ2luIHByaXNtLWZpbGUtaGlnaGxpZ2h0LmpzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5cbihmdW5jdGlvbiAoKSB7XG5cdGlmICh0eXBlb2Ygc2VsZiA9PT0gJ3VuZGVmaW5lZCcgfHwgIXNlbGYuUHJpc20gfHwgIXNlbGYuZG9jdW1lbnQgfHwgIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRzZWxmLlByaXNtLmZpbGVIaWdobGlnaHQgPSBmdW5jdGlvbigpIHtcblxuXHRcdHZhciBFeHRlbnNpb25zID0ge1xuXHRcdFx0J2pzJzogJ2phdmFzY3JpcHQnLFxuXHRcdFx0J2h0bWwnOiAnbWFya3VwJyxcblx0XHRcdCdzdmcnOiAnbWFya3VwJyxcblx0XHRcdCd4bWwnOiAnbWFya3VwJyxcblx0XHRcdCdweSc6ICdweXRob24nLFxuXHRcdFx0J3JiJzogJ3J1YnknLFxuXHRcdFx0J3BzMSc6ICdwb3dlcnNoZWxsJyxcblx0XHRcdCdwc20xJzogJ3Bvd2Vyc2hlbGwnXG5cdFx0fTtcblxuXHRcdGlmKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSB7IC8vIENoZWNrIHRvIHByZXZlbnQgZXJyb3IgaW4gSUU4XG5cdFx0XHRBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmVbZGF0YS1zcmNdJykpLmZvckVhY2goZnVuY3Rpb24gKHByZSkge1xuXHRcdFx0XHR2YXIgc3JjID0gcHJlLmdldEF0dHJpYnV0ZSgnZGF0YS1zcmMnKTtcblxuXHRcdFx0XHR2YXIgbGFuZ3VhZ2UsIHBhcmVudCA9IHByZTtcblx0XHRcdFx0dmFyIGxhbmcgPSAvXFxibGFuZyg/OnVhZ2UpPy0oPyFcXCopKFxcdyspXFxiL2k7XG5cdFx0XHRcdHdoaWxlIChwYXJlbnQgJiYgIWxhbmcudGVzdChwYXJlbnQuY2xhc3NOYW1lKSkge1xuXHRcdFx0XHRcdHBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHBhcmVudCkge1xuXHRcdFx0XHRcdGxhbmd1YWdlID0gKHByZS5jbGFzc05hbWUubWF0Y2gobGFuZykgfHwgWywgJyddKVsxXTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICghbGFuZ3VhZ2UpIHtcblx0XHRcdFx0XHR2YXIgZXh0ZW5zaW9uID0gKHNyYy5tYXRjaCgvXFwuKFxcdyspJC8pIHx8IFssICcnXSlbMV07XG5cdFx0XHRcdFx0bGFuZ3VhZ2UgPSBFeHRlbnNpb25zW2V4dGVuc2lvbl0gfHwgZXh0ZW5zaW9uO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dmFyIGNvZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb2RlJyk7XG5cdFx0XHRcdGNvZGUuY2xhc3NOYW1lID0gJ2xhbmd1YWdlLScgKyBsYW5ndWFnZTtcblxuXHRcdFx0XHRwcmUudGV4dENvbnRlbnQgPSAnJztcblxuXHRcdFx0XHRjb2RlLnRleHRDb250ZW50ID0gJ0xvYWRpbmfigKYnO1xuXG5cdFx0XHRcdHByZS5hcHBlbmRDaGlsZChjb2RlKTtcblxuXHRcdFx0XHR2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG5cblx0XHRcdFx0eGhyLm9wZW4oJ0dFVCcsIHNyYywgdHJ1ZSk7XG5cblx0XHRcdFx0eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRpZiAoeGhyLnJlYWR5U3RhdGUgPT0gNCkge1xuXG5cdFx0XHRcdFx0XHRpZiAoeGhyLnN0YXR1cyA8IDQwMCAmJiB4aHIucmVzcG9uc2VUZXh0KSB7XG5cdFx0XHRcdFx0XHRcdGNvZGUudGV4dENvbnRlbnQgPSB4aHIucmVzcG9uc2VUZXh0O1xuXG5cdFx0XHRcdFx0XHRcdFByaXNtLmhpZ2hsaWdodEVsZW1lbnQoY29kZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlIGlmICh4aHIuc3RhdHVzID49IDQwMCkge1xuXHRcdFx0XHRcdFx0XHRjb2RlLnRleHRDb250ZW50ID0gJ+KcliBFcnJvciAnICsgeGhyLnN0YXR1cyArICcgd2hpbGUgZmV0Y2hpbmcgZmlsZTogJyArIHhoci5zdGF0dXNUZXh0O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGNvZGUudGV4dENvbnRlbnQgPSAn4pyWIEVycm9yOiBGaWxlIGRvZXMgbm90IGV4aXN0IG9yIGlzIGVtcHR5Jztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0eGhyLnNlbmQobnVsbCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0fTtcblxuXHRzZWxmLlByaXNtLmZpbGVIaWdobGlnaHQoKTtcblxufSkoKTsiXSwiZmlsZSI6InByaXNtLm1pbi5qcyJ9 +var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=_self.Prism={util:{encode:function(e){return e instanceof a?new a(e.type,t.util.encode(e.content),e.alias):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(h instanceof r)){g.lastIndex=0;var y=g.exec(h);if(y){p&&(m=y[1].length);var v=y.index-1+m,y=y[0].slice(m),k=y.length,w=v+k,b=h.slice(0,v+1),P=h.slice(w+1),x=[d,1];b&&x.push(b);var A=new r(l,c?t.tokenize(y,c):y,f);x.push(A),P&&x.push(P),Array.prototype.splice.apply(s,x)}}}}}return s},hooks:{all:{},add:function(e,a){var n=t.hooks.all;n[e]=n[e]||[],n[e].push(a)},run:function(e,a){var n=t.hooks.all[e];if(n&&n.length)for(var r,s=0;r=n[s++];)r(a)}}},a=t.Token=function(e,t,a){this.type=e,this.content=t,this.alias=a};if(a.stringify=function(e,n,r){if("string"==typeof e)return e;if("Array"===t.util.type(e))return e.map(function(t){return a.stringify(t,n,e)}).join("");var s={type:e.type,content:a.stringify(e.content,n,r),tag:"span",classes:["token",e.type],attributes:{},language:n,parent:r};if("comment"==s.type&&(s.attributes.spellcheck="true"),e.alias){var i="Array"===t.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(s.classes,i)}t.hooks.run("wrap",s);var l="";for(var o in s.attributes)l+=(l?" ":"")+o+'="'+(s.attributes[o]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+l+">"+s.content+""},!_self.document)return _self.addEventListener?(_self.addEventListener("message",function(e){var a=JSON.parse(e.data),n=a.language,r=a.code,s=a.immediateClose;_self.postMessage(t.highlight(r,t.languages[n],n)),s&&_self.close()},!1),_self.Prism):_self.Prism;var n=document.getElementsByTagName("script");return n=n[n.length-1],n&&(t.filename=n.src,document.addEventListener&&!n.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism),Prism.languages.markup={comment://,prolog:/<\?[\w\W]+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=.$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.util.clone(Prism.languages.css),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/()[\w\W]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag)),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}}),Prism.languages.insertBefore("javascript","class-name",{"template-string":{pattern:/`(?:\\`|\\?[^`])*`/,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/()[\w\W]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript"}}),Prism.languages.js=Prism.languages.javascript,function(){"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var e={js:"javascript",html:"markup",svg:"markup",xml:"markup",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell"};Array.prototype.forEach&&Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(t){for(var a,n=t.getAttribute("data-src"),r=t,s=/\blang(?:uage)?-(?!\*)(\w+)\b/i;r&&!s.test(r.className);)r=r.parentNode;if(r&&(a=(t.className.match(s)||[,""])[1]),!a){var i=(n.match(/\.(\w+)$/)||[,""])[1];a=e[i]||i}var l=document.createElement("code");l.className="language-"+a,t.textContent="",l.textContent="Loading…",t.appendChild(l);var o=new XMLHttpRequest;o.open("GET",n,!0),o.onreadystatechange=function(){4==o.readyState&&(o.status<400&&o.responseText?(l.textContent=o.responseText,Prism.highlightElement(l)):o.status>=400?l.textContent="✖ Error "+o.status+" while fetching file: "+o.statusText:l.textContent="✖ Error: File does not exist or is empty")},o.send(null)})},self.Prism.fileHighlight())}(); \ No newline at end of file diff --git a/build/js/swipe.min.js b/build/js/swipe.min.js index 978077c..724990a 100755 --- a/build/js/swipe.min.js +++ b/build/js/swipe.min.js @@ -1,480 +1 @@ -/* - * Swipe 2.0 - * - * Brad Birdsall - * Copyright 2013, MIT License - * -*/ - -function Swipe(container, options) { - - "use strict"; - - // utilities - var noop = function() {}; // simple no operation function - var offloadFn = function(fn) { setTimeout(fn || noop, 0) }; // offload a functions execution - - // check browser capabilities - var browser = { - addEventListener: !!window.addEventListener, - touch: ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch, - transitions: (function(temp) { - var props = ['transformProperty', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform']; - for ( var i in props ) if (temp.style[ props[i] ] !== undefined) return true; - return false; - })(document.createElement('swipe')) - }; - - // quit if no root element - if (!container) return; - var element = container.children[0]; - var slides, slidePos, width; - options = options || {}; - var index = parseInt(options.startSlide, 10) || 0; - var speed = options.speed || 300; - - function setup() { - - // cache slides - slides = element.children; - - // create an array to store current positions of each slide - slidePos = new Array(slides.length); - - // determine width of each slide - width = container.getBoundingClientRect().width || container.offsetWidth; - - element.style.width = (slides.length * width) + 'px'; - - // stack elements - var pos = slides.length; - while(pos--) { - - var slide = slides[pos]; - - slide.style.width = width + 'px'; - slide.setAttribute('data-index', pos); - - if (browser.transitions) { - slide.style.left = (pos * -width) + 'px'; - move(pos, index > pos ? -width : (index < pos ? width : 0), 0); - } - - } - - if (!browser.transitions) element.style.left = (index * -width) + 'px'; - - container.style.visibility = 'visible'; - - } - - function prev() { - - if (index) slide(index-1); - else if (options.continuous) slide(slides.length-1); - - } - - function next() { - - if (index < slides.length - 1) slide(index+1); - else if (options.continuous) slide(0); - - } - - function slide(to, slideSpeed) { - - // do nothing if already on requested slide - if (index == to) return; - - if (browser.transitions) { - - var diff = Math.abs(index-to) - 1; - var direction = Math.abs(index-to) / (index-to); // 1:right -1:left - - while (diff--) move((to > index ? to : index) - diff - 1, width * direction, 0); - - move(index, width * direction, slideSpeed || speed); - move(to, 0, slideSpeed || speed); - - } else { - - animate(index * -width, to * -width, slideSpeed || speed); - - } - - index = to; - - offloadFn(options.callback && options.callback(index, slides[index])); - - } - - function move(index, dist, speed) { - - translate(index, dist, speed); - slidePos[index] = dist; - - } - - function translate(index, dist, speed) { - - var slide = slides[index]; - var style = slide && slide.style; - - if (!style) return; - - style.webkitTransitionDuration = - style.MozTransitionDuration = - style.msTransitionDuration = - style.OTransitionDuration = - style.transitionDuration = speed + 'ms'; - - style.webkitTransform = 'translate(' + dist + 'px,0)' + 'translateZ(0)'; - style.msTransform = - style.MozTransform = - style.OTransform = 'translateX(' + dist + 'px)'; - - } - - function animate(from, to, speed) { - - // if not an animation, just reposition - if (!speed) { - - element.style.left = to + 'px'; - return; - - } - - var start = +new Date; - - var timer = setInterval(function() { - - var timeElap = +new Date - start; - - if (timeElap > speed) { - - element.style.left = to + 'px'; - - if (delay) begin(); - - options.transitionEnd && options.transitionEnd.call(event, index, slides[index]); - - clearInterval(timer); - return; - - } - - element.style.left = (( (to - from) * (Math.floor((timeElap / speed) * 100) / 100) ) + from) + 'px'; - - }, 4); - - } - - // setup auto slideshow - var delay = options.auto || 0; - var interval; - - function begin() { - - interval = setTimeout(next, delay); - - } - - function stop() { - - delay = 0; - clearTimeout(interval); - - } - - - // setup initial vars - var start = {}; - var delta = {}; - var isScrolling; - - // setup event capturing - var events = { - - handleEvent: function(event) { - - switch (event.type) { - case 'touchstart': this.start(event); break; - case 'touchmove': this.move(event); break; - case 'touchend': offloadFn(this.end(event)); break; - case 'webkitTransitionEnd': - case 'msTransitionEnd': - case 'oTransitionEnd': - case 'otransitionend': - case 'transitionend': offloadFn(this.transitionEnd(event)); break; - case 'resize': offloadFn(setup.call()); break; - } - - if (options.stopPropagation) event.stopPropagation(); - - }, - start: function(event) { - - var touches = event.touches[0]; - - // measure start values - start = { - - // get initial touch coords - x: touches.pageX, - y: touches.pageY, - - // store time to determine touch duration - time: +new Date - - }; - - // used for testing first move event - isScrolling = undefined; - - // reset delta and end measurements - delta = {}; - - // attach touchmove and touchend listeners - element.addEventListener('touchmove', this, false); - element.addEventListener('touchend', this, false); - - }, - move: function(event) { - - // ensure swiping with one touch and not pinching - if ( event.touches.length > 1 || event.scale && event.scale !== 1) return - - if (options.disableScroll) event.preventDefault(); - - var touches = event.touches[0]; - - // measure change in x and y - delta = { - x: touches.pageX - start.x, - y: touches.pageY - start.y - } - - // determine if scrolling test has run - one time test - if ( typeof isScrolling == 'undefined') { - isScrolling = !!( isScrolling || Math.abs(delta.x) < Math.abs(delta.y) ); - } - - // if user is not trying to scroll vertically - if (!isScrolling) { - - // prevent native scrolling - event.preventDefault(); - - // stop slideshow - stop(); - - // increase resistance if first or last slide - delta.x = - delta.x / - ( (!index && delta.x > 0 // if first slide and sliding left - || index == slides.length - 1 // or if last slide and sliding right - && delta.x < 0 // and if sliding at all - ) ? - ( Math.abs(delta.x) / width + 1 ) // determine resistance level - : 1 ); // no resistance if false - - // translate 1:1 - translate(index-1, delta.x + slidePos[index-1], 0); - translate(index, delta.x + slidePos[index], 0); - translate(index+1, delta.x + slidePos[index+1], 0); - - } - - }, - end: function(event) { - - // measure duration - var duration = +new Date - start.time; - - // determine if slide attempt triggers next/prev slide - var isValidSlide = - Number(duration) < 250 // if slide duration is less than 250ms - && Math.abs(delta.x) > 20 // and if slide amt is greater than 20px - || Math.abs(delta.x) > width/2; // or if slide amt is greater than half the width - - // determine if slide attempt is past start and end - var isPastBounds = - !index && delta.x > 0 // if first slide and slide amt is greater than 0 - || index == slides.length - 1 && delta.x < 0; // or if last slide and slide amt is less than 0 - - // determine direction of swipe (true:right, false:left) - var direction = delta.x < 0; - - // if not scrolling vertically - if (!isScrolling) { - - if (isValidSlide && !isPastBounds) { - - if (direction) { - - move(index-1, -width, 0); - move(index, slidePos[index]-width, speed); - move(index+1, slidePos[index+1]-width, speed); - index += 1; - - } else { - - move(index+1, width, 0); - move(index, slidePos[index]+width, speed); - move(index-1, slidePos[index-1]+width, speed); - index += -1; - - } - - options.callback && options.callback(index, slides[index]); - - } else { - - move(index-1, -width, speed); - move(index, 0, speed); - move(index+1, width, speed); - - } - - } - - // kill touchmove and touchend event listeners until touchstart called again - element.removeEventListener('touchmove', events, false) - element.removeEventListener('touchend', events, false) - - }, - transitionEnd: function(event) { - - if (parseInt(event.target.getAttribute('data-index'), 10) == index) { - - if (delay) begin(); - - options.transitionEnd && options.transitionEnd.call(event, index, slides[index]); - - } - - } - - } - - // trigger setup - setup(); - - // start auto slideshow if applicable - if (delay) begin(); - - - // add event listeners - if (browser.addEventListener) { - - // set touchstart event on element - if (browser.touch) element.addEventListener('touchstart', events, false); - - if (browser.transitions) { - element.addEventListener('webkitTransitionEnd', events, false); - element.addEventListener('msTransitionEnd', events, false); - element.addEventListener('oTransitionEnd', events, false); - element.addEventListener('otransitionend', events, false); - element.addEventListener('transitionend', events, false); - } - - // set resize event on window - window.addEventListener('resize', events, false); - - } else { - - window.onresize = function () { setup() }; // to play nice with old IE - - } - - // expose the Swipe API - return { - setup: function() { - - setup(); - - }, - slide: function(to, speed) { - - slide(to, speed); - - }, - prev: function() { - - // cancel slideshow - stop(); - - prev(); - - }, - next: function() { - - stop(); - - next(); - - }, - getPos: function() { - - // return current index position - return index; - - }, - kill: function() { - - // cancel slideshow - stop(); - - // reset element - element.style.width = 'auto'; - element.style.left = 0; - - // reset slides - var pos = slides.length; - while(pos--) { - - var slide = slides[pos]; - slide.style.width = '100%'; - slide.style.left = 0; - - if (browser.transitions) translate(pos, 0, 0); - - } - - // removed event listeners - if (browser.addEventListener) { - - // remove current event listeners - element.removeEventListener('touchstart', events, false); - element.removeEventListener('webkitTransitionEnd', events, false); - element.removeEventListener('msTransitionEnd', events, false); - element.removeEventListener('oTransitionEnd', events, false); - element.removeEventListener('otransitionend', events, false); - element.removeEventListener('transitionend', events, false); - window.removeEventListener('resize', events, false); - - } - else { - - window.onresize = null; - - } - - } - } - -} - - -if ( window.jQuery || window.Zepto ) { - (function($) { - $.fn.Swipe = function(params) { - return this.each(function() { - $(this).data('Swipe', new Swipe($(this)[0], params)); - }); - } - })( window.jQuery || window.Zepto ) -} -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyJzd2lwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogU3dpcGUgMi4wXG4gKlxuICogQnJhZCBCaXJkc2FsbFxuICogQ29weXJpZ2h0IDIwMTMsIE1JVCBMaWNlbnNlXG4gKlxuKi9cblxuZnVuY3Rpb24gU3dpcGUoY29udGFpbmVyLCBvcHRpb25zKSB7XG5cbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgLy8gdXRpbGl0aWVzXG4gIHZhciBub29wID0gZnVuY3Rpb24oKSB7fTsgLy8gc2ltcGxlIG5vIG9wZXJhdGlvbiBmdW5jdGlvblxuICB2YXIgb2ZmbG9hZEZuID0gZnVuY3Rpb24oZm4pIHsgc2V0VGltZW91dChmbiB8fCBub29wLCAwKSB9OyAvLyBvZmZsb2FkIGEgZnVuY3Rpb25zIGV4ZWN1dGlvblxuICBcbiAgLy8gY2hlY2sgYnJvd3NlciBjYXBhYmlsaXRpZXNcbiAgdmFyIGJyb3dzZXIgPSB7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcjogISF3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcixcbiAgICB0b3VjaDogKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdykgfHwgd2luZG93LkRvY3VtZW50VG91Y2ggJiYgZG9jdW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudFRvdWNoLFxuICAgIHRyYW5zaXRpb25zOiAoZnVuY3Rpb24odGVtcCkge1xuICAgICAgdmFyIHByb3BzID0gWyd0cmFuc2Zvcm1Qcm9wZXJ0eScsICdXZWJraXRUcmFuc2Zvcm0nLCAnTW96VHJhbnNmb3JtJywgJ09UcmFuc2Zvcm0nLCAnbXNUcmFuc2Zvcm0nXTtcbiAgICAgIGZvciAoIHZhciBpIGluIHByb3BzICkgaWYgKHRlbXAuc3R5bGVbIHByb3BzW2ldIF0gIT09IHVuZGVmaW5lZCkgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSkoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3dpcGUnKSlcbiAgfTtcblxuICAvLyBxdWl0IGlmIG5vIHJvb3QgZWxlbWVudFxuICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuO1xuICB2YXIgZWxlbWVudCA9IGNvbnRhaW5lci5jaGlsZHJlblswXTtcbiAgdmFyIHNsaWRlcywgc2xpZGVQb3MsIHdpZHRoO1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIGluZGV4ID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFNsaWRlLCAxMCkgfHwgMDtcbiAgdmFyIHNwZWVkID0gb3B0aW9ucy5zcGVlZCB8fCAzMDA7XG5cbiAgZnVuY3Rpb24gc2V0dXAoKSB7XG5cbiAgICAvLyBjYWNoZSBzbGlkZXNcbiAgICBzbGlkZXMgPSBlbGVtZW50LmNoaWxkcmVuO1xuXG4gICAgLy8gY3JlYXRlIGFuIGFycmF5IHRvIHN0b3JlIGN1cnJlbnQgcG9zaXRpb25zIG9mIGVhY2ggc2xpZGVcbiAgICBzbGlkZVBvcyA9IG5ldyBBcnJheShzbGlkZXMubGVuZ3RoKTtcblxuICAgIC8vIGRldGVybWluZSB3aWR0aCBvZiBlYWNoIHNsaWRlXG4gICAgd2lkdGggPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgY29udGFpbmVyLm9mZnNldFdpZHRoO1xuXG4gICAgZWxlbWVudC5zdHlsZS53aWR0aCA9IChzbGlkZXMubGVuZ3RoICogd2lkdGgpICsgJ3B4JztcblxuICAgIC8vIHN0YWNrIGVsZW1lbnRzXG4gICAgdmFyIHBvcyA9IHNsaWRlcy5sZW5ndGg7XG4gICAgd2hpbGUocG9zLS0pIHtcblxuICAgICAgdmFyIHNsaWRlID0gc2xpZGVzW3Bvc107XG5cbiAgICAgIHNsaWRlLnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICAgICAgc2xpZGUuc2V0QXR0cmlidXRlKCdkYXRhLWluZGV4JywgcG9zKTtcblxuICAgICAgaWYgKGJyb3dzZXIudHJhbnNpdGlvbnMpIHtcbiAgICAgICAgc2xpZGUuc3R5bGUubGVmdCA9IChwb3MgKiAtd2lkdGgpICsgJ3B4JztcbiAgICAgICAgbW92ZShwb3MsIGluZGV4ID4gcG9zID8gLXdpZHRoIDogKGluZGV4IDwgcG9zID8gd2lkdGggOiAwKSwgMCk7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBpZiAoIWJyb3dzZXIudHJhbnNpdGlvbnMpIGVsZW1lbnQuc3R5bGUubGVmdCA9IChpbmRleCAqIC13aWR0aCkgKyAncHgnO1xuXG4gICAgY29udGFpbmVyLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG5cbiAgfVxuXG4gIGZ1bmN0aW9uIHByZXYoKSB7XG5cbiAgICBpZiAoaW5kZXgpIHNsaWRlKGluZGV4LTEpO1xuICAgIGVsc2UgaWYgKG9wdGlvbnMuY29udGludW91cykgc2xpZGUoc2xpZGVzLmxlbmd0aC0xKTtcblxuICB9XG5cbiAgZnVuY3Rpb24gbmV4dCgpIHtcblxuICAgIGlmIChpbmRleCA8IHNsaWRlcy5sZW5ndGggLSAxKSBzbGlkZShpbmRleCsxKTtcbiAgICBlbHNlIGlmIChvcHRpb25zLmNvbnRpbnVvdXMpIHNsaWRlKDApO1xuXG4gIH1cblxuICBmdW5jdGlvbiBzbGlkZSh0bywgc2xpZGVTcGVlZCkge1xuXG4gICAgLy8gZG8gbm90aGluZyBpZiBhbHJlYWR5IG9uIHJlcXVlc3RlZCBzbGlkZVxuICAgIGlmIChpbmRleCA9PSB0bykgcmV0dXJuO1xuICAgIFxuICAgIGlmIChicm93c2VyLnRyYW5zaXRpb25zKSB7XG5cbiAgICAgIHZhciBkaWZmID0gTWF0aC5hYnMoaW5kZXgtdG8pIC0gMTtcbiAgICAgIHZhciBkaXJlY3Rpb24gPSBNYXRoLmFicyhpbmRleC10bykgLyAoaW5kZXgtdG8pOyAvLyAxOnJpZ2h0IC0xOmxlZnRcblxuICAgICAgd2hpbGUgKGRpZmYtLSkgbW92ZSgodG8gPiBpbmRleCA/IHRvIDogaW5kZXgpIC0gZGlmZiAtIDEsIHdpZHRoICogZGlyZWN0aW9uLCAwKTtcblxuICAgICAgbW92ZShpbmRleCwgd2lkdGggKiBkaXJlY3Rpb24sIHNsaWRlU3BlZWQgfHwgc3BlZWQpO1xuICAgICAgbW92ZSh0bywgMCwgc2xpZGVTcGVlZCB8fCBzcGVlZCk7XG5cbiAgICB9IGVsc2Uge1xuXG4gICAgICBhbmltYXRlKGluZGV4ICogLXdpZHRoLCB0byAqIC13aWR0aCwgc2xpZGVTcGVlZCB8fCBzcGVlZCk7XG5cbiAgICB9XG5cbiAgICBpbmRleCA9IHRvO1xuXG4gICAgb2ZmbG9hZEZuKG9wdGlvbnMuY2FsbGJhY2sgJiYgb3B0aW9ucy5jYWxsYmFjayhpbmRleCwgc2xpZGVzW2luZGV4XSkpO1xuXG4gIH1cblxuICBmdW5jdGlvbiBtb3ZlKGluZGV4LCBkaXN0LCBzcGVlZCkge1xuXG4gICAgdHJhbnNsYXRlKGluZGV4LCBkaXN0LCBzcGVlZCk7XG4gICAgc2xpZGVQb3NbaW5kZXhdID0gZGlzdDtcblxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNsYXRlKGluZGV4LCBkaXN0LCBzcGVlZCkge1xuXG4gICAgdmFyIHNsaWRlID0gc2xpZGVzW2luZGV4XTtcbiAgICB2YXIgc3R5bGUgPSBzbGlkZSAmJiBzbGlkZS5zdHlsZTtcblxuICAgIGlmICghc3R5bGUpIHJldHVybjtcblxuICAgIHN0eWxlLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiA9IFxuICAgIHN0eWxlLk1velRyYW5zaXRpb25EdXJhdGlvbiA9IFxuICAgIHN0eWxlLm1zVHJhbnNpdGlvbkR1cmF0aW9uID0gXG4gICAgc3R5bGUuT1RyYW5zaXRpb25EdXJhdGlvbiA9IFxuICAgIHN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IHNwZWVkICsgJ21zJztcblxuICAgIHN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoJyArIGRpc3QgKyAncHgsMCknICsgJ3RyYW5zbGF0ZVooMCknO1xuICAgIHN0eWxlLm1zVHJhbnNmb3JtID0gXG4gICAgc3R5bGUuTW96VHJhbnNmb3JtID0gXG4gICAgc3R5bGUuT1RyYW5zZm9ybSA9ICd0cmFuc2xhdGVYKCcgKyBkaXN0ICsgJ3B4KSc7XG5cbiAgfVxuXG4gIGZ1bmN0aW9uIGFuaW1hdGUoZnJvbSwgdG8sIHNwZWVkKSB7XG5cbiAgICAvLyBpZiBub3QgYW4gYW5pbWF0aW9uLCBqdXN0IHJlcG9zaXRpb25cbiAgICBpZiAoIXNwZWVkKSB7XG4gICAgICBcbiAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IHRvICsgJ3B4JztcbiAgICAgIHJldHVybjtcblxuICAgIH1cbiAgICBcbiAgICB2YXIgc3RhcnQgPSArbmV3IERhdGU7XG4gICAgXG4gICAgdmFyIHRpbWVyID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7XG5cbiAgICAgIHZhciB0aW1lRWxhcCA9ICtuZXcgRGF0ZSAtIHN0YXJ0O1xuICAgICAgXG4gICAgICBpZiAodGltZUVsYXAgPiBzcGVlZCkge1xuXG4gICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IHRvICsgJ3B4JztcblxuICAgICAgICBpZiAoZGVsYXkpIGJlZ2luKCk7XG5cbiAgICAgICAgb3B0aW9ucy50cmFuc2l0aW9uRW5kICYmIG9wdGlvbnMudHJhbnNpdGlvbkVuZC5jYWxsKGV2ZW50LCBpbmRleCwgc2xpZGVzW2luZGV4XSk7XG5cbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lcik7XG4gICAgICAgIHJldHVybjtcblxuICAgICAgfVxuXG4gICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSAoKCAodG8gLSBmcm9tKSAqIChNYXRoLmZsb29yKCh0aW1lRWxhcCAvIHNwZWVkKSAqIDEwMCkgLyAxMDApICkgKyBmcm9tKSArICdweCc7XG5cbiAgICB9LCA0KTtcblxuICB9XG5cbiAgLy8gc2V0dXAgYXV0byBzbGlkZXNob3dcbiAgdmFyIGRlbGF5ID0gb3B0aW9ucy5hdXRvIHx8IDA7XG4gIHZhciBpbnRlcnZhbDtcblxuICBmdW5jdGlvbiBiZWdpbigpIHtcblxuICAgIGludGVydmFsID0gc2V0VGltZW91dChuZXh0LCBkZWxheSk7XG5cbiAgfVxuXG4gIGZ1bmN0aW9uIHN0b3AoKSB7XG5cbiAgICBkZWxheSA9IDA7XG4gICAgY2xlYXJUaW1lb3V0KGludGVydmFsKTtcblxuICB9XG5cblxuICAvLyBzZXR1cCBpbml0aWFsIHZhcnNcbiAgdmFyIHN0YXJ0ID0ge307XG4gIHZhciBkZWx0YSA9IHt9O1xuICB2YXIgaXNTY3JvbGxpbmc7ICAgICAgXG5cbiAgLy8gc2V0dXAgZXZlbnQgY2FwdHVyaW5nXG4gIHZhciBldmVudHMgPSB7XG5cbiAgICBoYW5kbGVFdmVudDogZnVuY3Rpb24oZXZlbnQpIHtcblxuICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ3RvdWNoc3RhcnQnOiB0aGlzLnN0YXJ0KGV2ZW50KTsgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvdWNobW92ZSc6IHRoaXMubW92ZShldmVudCk7IGJyZWFrO1xuICAgICAgICBjYXNlICd0b3VjaGVuZCc6IG9mZmxvYWRGbih0aGlzLmVuZChldmVudCkpOyBicmVhaztcbiAgICAgICAgY2FzZSAnd2Via2l0VHJhbnNpdGlvbkVuZCc6XG4gICAgICAgIGNhc2UgJ21zVHJhbnNpdGlvbkVuZCc6XG4gICAgICAgIGNhc2UgJ29UcmFuc2l0aW9uRW5kJzpcbiAgICAgICAgY2FzZSAnb3RyYW5zaXRpb25lbmQnOlxuICAgICAgICBjYXNlICd0cmFuc2l0aW9uZW5kJzogb2ZmbG9hZEZuKHRoaXMudHJhbnNpdGlvbkVuZChldmVudCkpOyBicmVhaztcbiAgICAgICAgY2FzZSAncmVzaXplJzogb2ZmbG9hZEZuKHNldHVwLmNhbGwoKSk7IGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5zdG9wUHJvcGFnYXRpb24pIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgfSxcbiAgICBzdGFydDogZnVuY3Rpb24oZXZlbnQpIHtcblxuICAgICAgdmFyIHRvdWNoZXMgPSBldmVudC50b3VjaGVzWzBdO1xuXG4gICAgICAvLyBtZWFzdXJlIHN0YXJ0IHZhbHVlc1xuICAgICAgc3RhcnQgPSB7XG5cbiAgICAgICAgLy8gZ2V0IGluaXRpYWwgdG91Y2ggY29vcmRzXG4gICAgICAgIHg6IHRvdWNoZXMucGFnZVgsXG4gICAgICAgIHk6IHRvdWNoZXMucGFnZVksXG5cbiAgICAgICAgLy8gc3RvcmUgdGltZSB0byBkZXRlcm1pbmUgdG91Y2ggZHVyYXRpb25cbiAgICAgICAgdGltZTogK25ldyBEYXRlXG5cbiAgICAgIH07XG4gICAgICBcbiAgICAgIC8vIHVzZWQgZm9yIHRlc3RpbmcgZmlyc3QgbW92ZSBldmVudFxuICAgICAgaXNTY3JvbGxpbmcgPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIHJlc2V0IGRlbHRhIGFuZCBlbmQgbWVhc3VyZW1lbnRzXG4gICAgICBkZWx0YSA9IHt9O1xuXG4gICAgICAvLyBhdHRhY2ggdG91Y2htb3ZlIGFuZCB0b3VjaGVuZCBsaXN0ZW5lcnNcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcywgZmFsc2UpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMsIGZhbHNlKTtcblxuICAgIH0sXG4gICAgbW92ZTogZnVuY3Rpb24oZXZlbnQpIHtcblxuICAgICAgLy8gZW5zdXJlIHN3aXBpbmcgd2l0aCBvbmUgdG91Y2ggYW5kIG5vdCBwaW5jaGluZ1xuICAgICAgaWYgKCBldmVudC50b3VjaGVzLmxlbmd0aCA+IDEgfHwgZXZlbnQuc2NhbGUgJiYgZXZlbnQuc2NhbGUgIT09IDEpIHJldHVyblxuXG4gICAgICBpZiAob3B0aW9ucy5kaXNhYmxlU2Nyb2xsKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICB2YXIgdG91Y2hlcyA9IGV2ZW50LnRvdWNoZXNbMF07XG5cbiAgICAgIC8vIG1lYXN1cmUgY2hhbmdlIGluIHggYW5kIHlcbiAgICAgIGRlbHRhID0ge1xuICAgICAgICB4OiB0b3VjaGVzLnBhZ2VYIC0gc3RhcnQueCxcbiAgICAgICAgeTogdG91Y2hlcy5wYWdlWSAtIHN0YXJ0LnlcbiAgICAgIH1cblxuICAgICAgLy8gZGV0ZXJtaW5lIGlmIHNjcm9sbGluZyB0ZXN0IGhhcyBydW4gLSBvbmUgdGltZSB0ZXN0XG4gICAgICBpZiAoIHR5cGVvZiBpc1Njcm9sbGluZyA9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpc1Njcm9sbGluZyA9ICEhKCBpc1Njcm9sbGluZyB8fCBNYXRoLmFicyhkZWx0YS54KSA8IE1hdGguYWJzKGRlbHRhLnkpICk7XG4gICAgICB9XG5cbiAgICAgIC8vIGlmIHVzZXIgaXMgbm90IHRyeWluZyB0byBzY3JvbGwgdmVydGljYWxseVxuICAgICAgaWYgKCFpc1Njcm9sbGluZykge1xuXG4gICAgICAgIC8vIHByZXZlbnQgbmF0aXZlIHNjcm9sbGluZyBcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAvLyBzdG9wIHNsaWRlc2hvd1xuICAgICAgICBzdG9wKCk7XG5cbiAgICAgICAgLy8gaW5jcmVhc2UgcmVzaXN0YW5jZSBpZiBmaXJzdCBvciBsYXN0IHNsaWRlXG4gICAgICAgIGRlbHRhLnggPSBcbiAgICAgICAgICBkZWx0YS54IC8gXG4gICAgICAgICAgICAoICghaW5kZXggJiYgZGVsdGEueCA+IDAgICAgICAgICAgICAgICAvLyBpZiBmaXJzdCBzbGlkZSBhbmQgc2xpZGluZyBsZWZ0XG4gICAgICAgICAgICAgIHx8IGluZGV4ID09IHNsaWRlcy5sZW5ndGggLSAxICAgICAgICAvLyBvciBpZiBsYXN0IHNsaWRlIGFuZCBzbGlkaW5nIHJpZ2h0XG4gICAgICAgICAgICAgICYmIGRlbHRhLnggPCAwICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgaWYgc2xpZGluZyBhdCBhbGxcbiAgICAgICAgICAgICkgPyAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICggTWF0aC5hYnMoZGVsdGEueCkgLyB3aWR0aCArIDEgKSAgICAgIC8vIGRldGVybWluZSByZXNpc3RhbmNlIGxldmVsXG4gICAgICAgICAgICA6IDEgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBubyByZXNpc3RhbmNlIGlmIGZhbHNlXG4gICAgICAgIFxuICAgICAgICAvLyB0cmFuc2xhdGUgMToxXG4gICAgICAgIHRyYW5zbGF0ZShpbmRleC0xLCBkZWx0YS54ICsgc2xpZGVQb3NbaW5kZXgtMV0sIDApO1xuICAgICAgICB0cmFuc2xhdGUoaW5kZXgsIGRlbHRhLnggKyBzbGlkZVBvc1tpbmRleF0sIDApO1xuICAgICAgICB0cmFuc2xhdGUoaW5kZXgrMSwgZGVsdGEueCArIHNsaWRlUG9zW2luZGV4KzFdLCAwKTtcblxuICAgICAgfVxuXG4gICAgfSxcbiAgICBlbmQ6IGZ1bmN0aW9uKGV2ZW50KSB7XG5cbiAgICAgIC8vIG1lYXN1cmUgZHVyYXRpb25cbiAgICAgIHZhciBkdXJhdGlvbiA9ICtuZXcgRGF0ZSAtIHN0YXJ0LnRpbWU7XG5cbiAgICAgIC8vIGRldGVybWluZSBpZiBzbGlkZSBhdHRlbXB0IHRyaWdnZXJzIG5leHQvcHJldiBzbGlkZVxuICAgICAgdmFyIGlzVmFsaWRTbGlkZSA9IFxuICAgICAgICAgICAgTnVtYmVyKGR1cmF0aW9uKSA8IDI1MCAgICAgICAgICAgICAgIC8vIGlmIHNsaWRlIGR1cmF0aW9uIGlzIGxlc3MgdGhhbiAyNTBtc1xuICAgICAgICAgICAgJiYgTWF0aC5hYnMoZGVsdGEueCkgPiAyMCAgICAgICAgICAgIC8vIGFuZCBpZiBzbGlkZSBhbXQgaXMgZ3JlYXRlciB0aGFuIDIwcHhcbiAgICAgICAgICAgIHx8IE1hdGguYWJzKGRlbHRhLngpID4gd2lkdGgvMjsgICAgICAvLyBvciBpZiBzbGlkZSBhbXQgaXMgZ3JlYXRlciB0aGFuIGhhbGYgdGhlIHdpZHRoXG5cbiAgICAgIC8vIGRldGVybWluZSBpZiBzbGlkZSBhdHRlbXB0IGlzIHBhc3Qgc3RhcnQgYW5kIGVuZFxuICAgICAgdmFyIGlzUGFzdEJvdW5kcyA9IFxuICAgICAgICAgICAgIWluZGV4ICYmIGRlbHRhLnggPiAwICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGZpcnN0IHNsaWRlIGFuZCBzbGlkZSBhbXQgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgICAgIHx8IGluZGV4ID09IHNsaWRlcy5sZW5ndGggLSAxICYmIGRlbHRhLnggPCAwOyAgICAvLyBvciBpZiBsYXN0IHNsaWRlIGFuZCBzbGlkZSBhbXQgaXMgbGVzcyB0aGFuIDBcbiAgICAgIFxuICAgICAgLy8gZGV0ZXJtaW5lIGRpcmVjdGlvbiBvZiBzd2lwZSAodHJ1ZTpyaWdodCwgZmFsc2U6bGVmdClcbiAgICAgIHZhciBkaXJlY3Rpb24gPSBkZWx0YS54IDwgMDtcblxuICAgICAgLy8gaWYgbm90IHNjcm9sbGluZyB2ZXJ0aWNhbGx5XG4gICAgICBpZiAoIWlzU2Nyb2xsaW5nKSB7XG5cbiAgICAgICAgaWYgKGlzVmFsaWRTbGlkZSAmJiAhaXNQYXN0Qm91bmRzKSB7XG5cbiAgICAgICAgICBpZiAoZGlyZWN0aW9uKSB7XG5cbiAgICAgICAgICAgIG1vdmUoaW5kZXgtMSwgLXdpZHRoLCAwKTtcbiAgICAgICAgICAgIG1vdmUoaW5kZXgsIHNsaWRlUG9zW2luZGV4XS13aWR0aCwgc3BlZWQpO1xuICAgICAgICAgICAgbW92ZShpbmRleCsxLCBzbGlkZVBvc1tpbmRleCsxXS13aWR0aCwgc3BlZWQpO1xuICAgICAgICAgICAgaW5kZXggKz0gMTtcblxuICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIG1vdmUoaW5kZXgrMSwgd2lkdGgsIDApO1xuICAgICAgICAgICAgbW92ZShpbmRleCwgc2xpZGVQb3NbaW5kZXhdK3dpZHRoLCBzcGVlZCk7XG4gICAgICAgICAgICBtb3ZlKGluZGV4LTEsIHNsaWRlUG9zW2luZGV4LTFdK3dpZHRoLCBzcGVlZCk7XG4gICAgICAgICAgICBpbmRleCArPSAtMTtcblxuICAgICAgICAgIH1cblxuICAgICAgICAgIG9wdGlvbnMuY2FsbGJhY2sgJiYgb3B0aW9ucy5jYWxsYmFjayhpbmRleCwgc2xpZGVzW2luZGV4XSk7XG5cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgIG1vdmUoaW5kZXgtMSwgLXdpZHRoLCBzcGVlZCk7XG4gICAgICAgICAgbW92ZShpbmRleCwgMCwgc3BlZWQpO1xuICAgICAgICAgIG1vdmUoaW5kZXgrMSwgd2lkdGgsIHNwZWVkKTtcblxuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgLy8ga2lsbCB0b3VjaG1vdmUgYW5kIHRvdWNoZW5kIGV2ZW50IGxpc3RlbmVycyB1bnRpbCB0b3VjaHN0YXJ0IGNhbGxlZCBhZ2FpblxuICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBldmVudHMsIGZhbHNlKVxuICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGV2ZW50cywgZmFsc2UpXG5cbiAgICB9LFxuICAgIHRyYW5zaXRpb25FbmQ6IGZ1bmN0aW9uKGV2ZW50KSB7XG5cbiAgICAgIGlmIChwYXJzZUludChldmVudC50YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLWluZGV4JyksIDEwKSA9PSBpbmRleCkge1xuICAgICAgICBcbiAgICAgICAgaWYgKGRlbGF5KSBiZWdpbigpO1xuXG4gICAgICAgIG9wdGlvbnMudHJhbnNpdGlvbkVuZCAmJiBvcHRpb25zLnRyYW5zaXRpb25FbmQuY2FsbChldmVudCwgaW5kZXgsIHNsaWRlc1tpbmRleF0pO1xuXG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG4gIC8vIHRyaWdnZXIgc2V0dXBcbiAgc2V0dXAoKTtcblxuICAvLyBzdGFydCBhdXRvIHNsaWRlc2hvdyBpZiBhcHBsaWNhYmxlXG4gIGlmIChkZWxheSkgYmVnaW4oKTtcblxuXG4gIC8vIGFkZCBldmVudCBsaXN0ZW5lcnNcbiAgaWYgKGJyb3dzZXIuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIFxuICAgIC8vIHNldCB0b3VjaHN0YXJ0IGV2ZW50IG9uIGVsZW1lbnQgICAgXG4gICAgaWYgKGJyb3dzZXIudG91Y2gpIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGV2ZW50cywgZmFsc2UpO1xuXG4gICAgaWYgKGJyb3dzZXIudHJhbnNpdGlvbnMpIHtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0VHJhbnNpdGlvbkVuZCcsIGV2ZW50cywgZmFsc2UpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtc1RyYW5zaXRpb25FbmQnLCBldmVudHMsIGZhbHNlKTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignb1RyYW5zaXRpb25FbmQnLCBldmVudHMsIGZhbHNlKTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignb3RyYW5zaXRpb25lbmQnLCBldmVudHMsIGZhbHNlKTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIGV2ZW50cywgZmFsc2UpO1xuICAgIH1cblxuICAgIC8vIHNldCByZXNpemUgZXZlbnQgb24gd2luZG93XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGV2ZW50cywgZmFsc2UpO1xuXG4gIH0gZWxzZSB7XG5cbiAgICB3aW5kb3cub25yZXNpemUgPSBmdW5jdGlvbiAoKSB7IHNldHVwKCkgfTsgLy8gdG8gcGxheSBuaWNlIHdpdGggb2xkIElFXG5cbiAgfVxuXG4gIC8vIGV4cG9zZSB0aGUgU3dpcGUgQVBJXG4gIHJldHVybiB7XG4gICAgc2V0dXA6IGZ1bmN0aW9uKCkge1xuXG4gICAgICBzZXR1cCgpO1xuXG4gICAgfSxcbiAgICBzbGlkZTogZnVuY3Rpb24odG8sIHNwZWVkKSB7XG5cbiAgICAgIHNsaWRlKHRvLCBzcGVlZCk7XG5cbiAgICB9LFxuICAgIHByZXY6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAvLyBjYW5jZWwgc2xpZGVzaG93XG4gICAgICBzdG9wKCk7XG5cbiAgICAgIHByZXYoKTtcblxuICAgIH0sXG4gICAgbmV4dDogZnVuY3Rpb24oKSB7XG5cbiAgICAgIHN0b3AoKTtcblxuICAgICAgbmV4dCgpO1xuXG4gICAgfSxcbiAgICBnZXRQb3M6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAvLyByZXR1cm4gY3VycmVudCBpbmRleCBwb3NpdGlvblxuICAgICAgcmV0dXJuIGluZGV4O1xuXG4gICAgfSxcbiAgICBraWxsOiBmdW5jdGlvbigpIHtcblxuICAgICAgLy8gY2FuY2VsIHNsaWRlc2hvd1xuICAgICAgc3RvcCgpO1xuXG4gICAgICAvLyByZXNldCBlbGVtZW50XG4gICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gJ2F1dG8nO1xuICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gMDtcblxuICAgICAgLy8gcmVzZXQgc2xpZGVzXG4gICAgICB2YXIgcG9zID0gc2xpZGVzLmxlbmd0aDtcbiAgICAgIHdoaWxlKHBvcy0tKSB7XG5cbiAgICAgICAgdmFyIHNsaWRlID0gc2xpZGVzW3Bvc107XG4gICAgICAgIHNsaWRlLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICBzbGlkZS5zdHlsZS5sZWZ0ID0gMDtcblxuICAgICAgICBpZiAoYnJvd3Nlci50cmFuc2l0aW9ucykgdHJhbnNsYXRlKHBvcywgMCwgMCk7XG5cbiAgICAgIH1cblxuICAgICAgLy8gcmVtb3ZlZCBldmVudCBsaXN0ZW5lcnNcbiAgICAgIGlmIChicm93c2VyLmFkZEV2ZW50TGlzdGVuZXIpIHtcblxuICAgICAgICAvLyByZW1vdmUgY3VycmVudCBldmVudCBsaXN0ZW5lcnNcbiAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZXZlbnRzLCBmYWxzZSk7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2Via2l0VHJhbnNpdGlvbkVuZCcsIGV2ZW50cywgZmFsc2UpO1xuICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21zVHJhbnNpdGlvbkVuZCcsIGV2ZW50cywgZmFsc2UpO1xuICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29UcmFuc2l0aW9uRW5kJywgZXZlbnRzLCBmYWxzZSk7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3RyYW5zaXRpb25lbmQnLCBldmVudHMsIGZhbHNlKTtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uZW5kJywgZXZlbnRzLCBmYWxzZSk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBldmVudHMsIGZhbHNlKTtcblxuICAgICAgfVxuICAgICAgZWxzZSB7XG5cbiAgICAgICAgd2luZG93Lm9ucmVzaXplID0gbnVsbDtcblxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbn1cblxuXG5pZiAoIHdpbmRvdy5qUXVlcnkgfHwgd2luZG93LlplcHRvICkge1xuICAoZnVuY3Rpb24oJCkge1xuICAgICQuZm4uU3dpcGUgPSBmdW5jdGlvbihwYXJhbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICQodGhpcykuZGF0YSgnU3dpcGUnLCBuZXcgU3dpcGUoJCh0aGlzKVswXSwgcGFyYW1zKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pKCB3aW5kb3cualF1ZXJ5IHx8IHdpbmRvdy5aZXB0byApXG59Il0sImZpbGUiOiJzd2lwZS5taW4uanMifQ== +function Swipe(t,n){"use strict";function e(){h=E.children,w=new Array(h.length),m=t.getBoundingClientRect().width||t.offsetWidth,E.style.width=h.length*m+"px";for(var n=h.length;n--;){var e=h[n];e.style.width=m+"px",e.setAttribute("data-index",n),f.transitions&&(e.style.left=n*-m+"px",a(n,b>n?-m:bb?t:b)-i-1,m*o,0);a(b,m*o,e||T),a(t,0,e||T)}else d(b*-m,t*-m,e||T);b=t,v(n.callback&&n.callback(b,h[b]))}}function a(t,n,e){s(t,n,e),w[t]=n}function s(t,n,e){var i=h[t],o=i&&i.style;o&&(o.webkitTransitionDuration=o.MozTransitionDuration=o.msTransitionDuration=o.OTransitionDuration=o.transitionDuration=e+"ms",o.webkitTransform="translate("+n+"px,0)translateZ(0)",o.msTransform=o.MozTransform=o.OTransform="translateX("+n+"px)")}function d(t,e,i){if(!i)return void(E.style.left=e+"px");var o=+new Date,r=setInterval(function(){var a=+new Date-o;return a>i?(E.style.left=e+"px",y&&c(),n.transitionEnd&&n.transitionEnd.call(event,b,h[b]),void clearInterval(r)):void(E.style.left=(e-t)*(Math.floor(a/i*100)/100)+t+"px")},4)}function c(){p=setTimeout(o,y)}function u(){y=0,clearTimeout(p)}var l=function(){},v=function(t){setTimeout(t||l,0)},f={addEventListener:!!window.addEventListener,touch:"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,transitions:function(t){var n=["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"];for(var e in n)if(void 0!==t.style[n[e]])return!0;return!1}(document.createElement("swipe"))};if(t){var h,w,m,E=t.children[0];n=n||{};var p,x,b=parseInt(n.startSlide,10)||0,T=n.speed||300,y=n.auto||0,L={},g={},k={handleEvent:function(t){switch(t.type){case"touchstart":this.start(t);break;case"touchmove":this.move(t);break;case"touchend":v(this.end(t));break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"otransitionend":case"transitionend":v(this.transitionEnd(t));break;case"resize":v(e.call())}n.stopPropagation&&t.stopPropagation()},start:function(t){var n=t.touches[0];L={x:n.pageX,y:n.pageY,time:+new Date},x=void 0,g={},E.addEventListener("touchmove",this,!1),E.addEventListener("touchend",this,!1)},move:function(t){if(!(t.touches.length>1||t.scale&&1!==t.scale)){n.disableScroll&&t.preventDefault();var e=t.touches[0];g={x:e.pageX-L.x,y:e.pageY-L.y},"undefined"==typeof x&&(x=!!(x||Math.abs(g.x)0||b==h.length-1&&g.x<0?Math.abs(g.x)/m+1:1),s(b-1,g.x+w[b-1],0),s(b,g.x+w[b],0),s(b+1,g.x+w[b+1],0))}},end:function(t){var e=+new Date-L.time,i=Number(e)<250&&Math.abs(g.x)>20||Math.abs(g.x)>m/2,o=!b&&g.x>0||b==h.length-1&&g.x<0,r=g.x<0;x||(i&&!o?(r?(a(b-1,-m,0),a(b,w[b]-m,T),a(b+1,w[b+1]-m,T),b+=1):(a(b+1,m,0),a(b,w[b]+m,T),a(b-1,w[b-1]+m,T),b+=-1),n.callback&&n.callback(b,h[b])):(a(b-1,-m,T),a(b,0,T),a(b+1,m,T))),E.removeEventListener("touchmove",k,!1),E.removeEventListener("touchend",k,!1)},transitionEnd:function(t){parseInt(t.target.getAttribute("data-index"),10)==b&&(y&&c(),n.transitionEnd&&n.transitionEnd.call(t,b,h[b]))}};return e(),y&&c(),f.addEventListener?(f.touch&&E.addEventListener("touchstart",k,!1),f.transitions&&(E.addEventListener("webkitTransitionEnd",k,!1),E.addEventListener("msTransitionEnd",k,!1),E.addEventListener("oTransitionEnd",k,!1),E.addEventListener("otransitionend",k,!1),E.addEventListener("transitionend",k,!1)),window.addEventListener("resize",k,!1)):window.onresize=function(){e()},{setup:function(){e()},slide:function(t,n){r(t,n)},prev:function(){u(),i()},next:function(){u(),o()},getPos:function(){return b},kill:function(){u(),E.style.width="auto",E.style.left=0;for(var t=h.length;t--;){var n=h[t];n.style.width="100%",n.style.left=0,f.transitions&&s(t,0,0)}f.addEventListener?(E.removeEventListener("touchstart",k,!1),E.removeEventListener("webkitTransitionEnd",k,!1),E.removeEventListener("msTransitionEnd",k,!1),E.removeEventListener("oTransitionEnd",k,!1),E.removeEventListener("otransitionend",k,!1),E.removeEventListener("transitionend",k,!1),window.removeEventListener("resize",k,!1)):window.onresize=null}}}}(window.jQuery||window.Zepto)&&!function(t){t.fn.Swipe=function(n){return this.each(function(){t(this).data("Swipe",new Swipe(t(this)[0],n))})}}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/build/style/admin.css b/build/style/admin.css index 6d61caf..39d202e 100755 --- a/build/style/admin.css +++ b/build/style/admin.css @@ -1,2 +1 @@ -.options_wrap header:after,.options_wrap header:before{content:"";display:table}.options_wrap header:after{clear:both}.options_wrap header{zoom:1}.files-panel,.links-panel{overflow:hidden}.files-panel .description,.links-panel .description{display:none}.files-panel label,.links-panel label{display:block;font-weight:700;margin:12px 6px 0}.files-panel label span,.links-panel label span{display:inline;font-weight:400}.files-panel .panel_block,.links-panel .panel_block{float:left;position:relative;overflow:hidden;padding:5px;width:calc(50% - 20px)}.files-panel .panel_block .remove,.links-panel .panel_block .remove{color:#a00a00;cursor:pointer;width:auto;float:right;text-align:right}.files-panel .panel_block .remove:hover,.links-panel .panel_block .remove:hover{color:red}.files-panel .button-container,.links-panel .button-container{padding:10px;clear:both}.files-panel span,.links-panel span{color:#999;display:block}.files-panel input[type=text],.files-panel textarea,.links-panel input[type=text],.links-panel textarea{margin-bottom:3px;width:100%}.files-panel h4,.links-panel h4{color:#999;font-size:1em;margin:15px 6px;text-transform:uppercase}.fh-profile-upload-options input,.fh-profile-upload-options td,.fh-profile-upload-options th{vertical-align:top}.user-preview-image{display:block;height:auto;width:150px}.options_wrap img{float:left}.options_wrap span{float:left;font-size:1.4em;padding:16px}.options_wrap form{width:100%;float:left}.version_baner{line-height:0}.version_baner img{width:auto;max-height:300px}.version_baner h2{position:absolute;bottom:20px;left:20px;color:#fff;text-shadow:0 0 3px #333}.version_baner .version{font-weight:700}.summary_wrap{text-align:center;height:300px}.summary_wrap h1{padding-right:0}.summary_wrap .buttons-wrap{position:relative;margin-top:25%}.summary_wrap .button-big{padding:20px;line-height:0;font-size:16px;margin:10px auto}.summary_wrap #col-left,.summary_wrap #col-right{float:left;position:relative;height:100%}.summary_wrap #col-left:before{content:"";position:absolute;right:0;bottom:10%;height:80%;width:1px;border-right:1px solid #EEE}.summary_wrap img{width:150px;height:150px;background:0 0;border-radius:75px;-o-object-fit:cover;object-fit:cover;margin-top:10%}.avatars,.column-avatars{width:65px}.avatars img{width:50px;height:50px;background:0 0;border-radius:25px;-o-object-fit:cover;object-fit:cover;vertical-align:middle}#clockdiv div>span,#clockdiv>div{border-radius:3px;display:inline-block}#clockdiv{font-family:sans-serif;color:#fff;display:inline-block;font-weight:100;text-align:center;font-size:30px}#clockdiv>div{padding:10px;background:#00BF96}#clockdiv div>span{padding:15px;background:#00816A}.smalltext{padding-top:5px;font-size:16px} -/*# sourceMappingURL=admin.css.map */ +.options_wrap header:after,.options_wrap header:before{content:"";display:table}.options_wrap header:after{clear:both}.options_wrap header{zoom:1}.files-panel,.links-panel{overflow:hidden}.files-panel .description,.links-panel .description{display:none}.files-panel label,.links-panel label{display:block;font-weight:700;margin:12px 6px 0}.files-panel label span,.links-panel label span{display:inline;font-weight:400}.files-panel .panel_block,.links-panel .panel_block{float:left;position:relative;overflow:hidden;padding:5px;width:calc(50% - 20px)}.files-panel .panel_block .remove,.links-panel .panel_block .remove{color:#a00a00;cursor:pointer;width:auto;float:right;text-align:right}.files-panel .panel_block .remove:hover,.links-panel .panel_block .remove:hover{color:red}.files-panel .button-container,.links-panel .button-container{padding:10px;clear:both}.files-panel span,.links-panel span{color:#999;display:block}.files-panel input[type=text],.files-panel textarea,.links-panel input[type=text],.links-panel textarea{margin-bottom:3px;width:100%}.files-panel h4,.links-panel h4{color:#999;font-size:1em;margin:15px 6px;text-transform:uppercase}.fh-profile-upload-options input,.fh-profile-upload-options td,.fh-profile-upload-options th{vertical-align:top}.user-preview-image{display:block;height:auto;width:150px}.options_wrap img{float:left}.options_wrap span{float:left;font-size:1.4em;padding:16px}.options_wrap form{width:100%;float:left}.version_baner{line-height:0}.version_baner img{width:auto;max-height:300px}.version_baner h2{position:absolute;bottom:20px;left:20px;color:#fff;text-shadow:0 0 3px #333}.version_baner .version{font-weight:700}.summary_wrap{text-align:center;height:300px}.summary_wrap h1{padding-right:0}.summary_wrap .buttons-wrap{position:relative;margin-top:25%}.summary_wrap .button-big{padding:20px;line-height:0;font-size:16px;margin:10px auto}.summary_wrap #col-left,.summary_wrap #col-right{float:left;position:relative;height:100%}.summary_wrap #col-left:before{content:"";position:absolute;right:0;bottom:10%;height:80%;width:1px;border-right:1px solid #EEE}.summary_wrap img{width:150px;height:150px;background:0 0;border-radius:75px;-o-object-fit:cover;object-fit:cover;margin-top:10%}.avatars,.column-avatars{width:65px}.avatars img{width:50px;height:50px;background:0 0;border-radius:25px;-o-object-fit:cover;object-fit:cover;vertical-align:middle}#clockdiv div>span,#clockdiv>div{border-radius:3px;display:inline-block}#clockdiv{font-family:sans-serif;color:#fff;display:inline-block;font-weight:100;text-align:center;font-size:30px}#clockdiv>div{padding:10px;background:#00BF96}#clockdiv div>span{padding:15px;background:#00816A}.smalltext{padding-top:5px;font-size:16px} \ No newline at end of file diff --git a/build/style/main.css b/build/style/main.css index 41b2ec0..ffa655b 100755 --- a/build/style/main.css +++ b/build/style/main.css @@ -1,2 +1 @@ -@charset "UTF-8";article,aside,details,figcaption,figure,footer,header,hgroup,hr,main,menu,nav,section,summary{display:block}pre,textarea{overflow:auto}fieldset,hr,img,legend{border:0}fieldset,hr,legend,td,th{padding:0}body,fieldset,figure{margin:0}.brand:hover .brand__logo,.memberOverlay{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.about__content:after,.compensator:after,.container:after,.project__content:after,.tabsMenu,.topbar:after,blockquote:after{clear:both}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;overflow-x:hidden}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],img:not([src]),template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.btn,audio,canvas,iframe,img,svg,video{vertical-align:middle}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:1px;border-top:1px solid #dfdfdf;margin:1em 0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}.hero__middleTitle,.nav__menu,.orgs__title{text-transform:uppercase}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}.brand,.btn,.dropy__title,.navicon-button,.swipe__nav{cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}::-moz-selection{background:#6c4892;text-shadow:none;color:#fff}::selection{background:#6c4892;text-shadow:none;color:#fff}blockquote{position:relative;z-index:1;margin:20px -30px;padding:0 10%;font-size:2em;font-weight:200;background-color:#D2D2D2;zoom:1}.global,body{background-color:#fcfcfc;position:relative}blockquote:after,blockquote:before{content:"";display:table}body{font-family:"Titillium Web",sans-serif;font-size:16px;line-height:1.4;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;border:none;padding:5px}ol,ul{margin-top:0;margin-bottom:10px}.global{margin-bottom:100vh;min-height:100vh;padding:70px 0 40px;z-index:1}.global:after{background:inherit;content:'';display:block;height:50%;left:0;position:absolute;right:0;z-index:-1;-webkit-backface-visibility:hidden;bottom:0;-webkit-transform:skewY(-1.5deg);-ms-transform:skewY(-1.5deg);transform:skewY(-1.5deg);-webkit-transform-origin:100%;-ms-transform-origin:100%;transform-origin:100%;box-shadow:0 2px 3px 0 rgba(0,0,0,.1)}.compensator:after,.compensator:before,.container:after,.container:before{display:table;content:""}@media screen and (min-width:48em){.global{margin-bottom:90vh;padding-top:91px}}.global--full{margin-bottom:0;height:100vh}.global--frontpage{padding-top:40px}.compensator{zoom:1}@media screen and (min-width:48em){.compensator{margin:-10px -10px 0}.container{width:750px}}.container{margin-right:auto;margin-left:auto;zoom:1}@media screen and (min-width:62em){.container{width:900px}}@media screen and (min-width:75em){.container{width:1000px}}.container--full{width:100%}.cardsWrapper,.counters{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:relative}@media screen and (min-width:75em){.cardsWrapper,.counters{-webkit-align-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}}.memberInfo{position:relative;border:1px solid #dfdfdf;border-right:0;border-left:0;z-index:1;overflow:hidden;margin:0 0 10px;-webkit-animation:fadeIn .5s cubic-bezier(.455,.03,.515,.955) forwards;animation:fadeIn .5s cubic-bezier(.455,.03,.515,.955) forwards}.memberInfo__nameWrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.memberInfo__desc,.memberInfo__status{display:inline-block;font-size:1.03rem;text-align:center}@media screen and (min-width:48em){.memberInfo{border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-right:1px solid #dfdfdf;border-left:1px solid #dfdfdf;margin:0 10px 10px}.memberInfo__nameWrapper{position:absolute;bottom:0;left:180px;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-flex-flow:row;-ms-flex-flow:row;flex-flow:row}.memberInfo__desc,.memberInfo__status{margin-left:175px;text-align:left}}.brand,.emptyState,.nav__menu,.orgs__title,.topbar__appname{text-align:center}.memberInfo__desc{margin-left:20px;position:relative}.memberInfo__desc:before{content:"";position:absolute;left:-12px;top:10px;width:4px;height:4px;background:#333;border-radius:2px;-o-object-fit:cover;object-fit:cover}.memberInfo__social{margin:5px 10px}.memberInfo__avatar{height:128px;width:128px;display:inline-block;border:5px solid #fff;border-radius:100%;background-color:#fff}.modal__body,.orgs,.orgs__title{border-bottom:1px solid #dfdfdf}@media screen and (min-width:48em){.memberInfo__avatar{margin-top:30px}}.memberInfo__name{font-size:2.5em;line-height:1.3;font-weight:300;margin:0;color:#fff}.violetWrapper{background:-webkit-linear-gradient(240deg,#b226f9,#6c42a4,#5566e2);background:linear-gradient(210deg,#b226f9,#6c42a4,#5566e2);background-size:100% 400%;padding:20px;z-index:1;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}@media screen and (min-width:48em){.violetWrapper{height:80px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row;-ms-flex-flow:row;flex-flow:row;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}}.brand__controls,.whiteWrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.whiteWrapper{background-color:#fff;width:100%;padding:5px;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.usercard{margin-top:20px}.emptyState{font-size:3em;color:#D2D2D2;font-weight:600}.memberOverlay{padding-top:90px;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#fcfcfc;z-index:3;visibility:hidden;opacity:0;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.brand:hover .brand__controls,.memberOverlay--visible{opacity:1;visibility:visible}.memberOverlay--visible{overflow-y:auto}.about__header,.blogcard,.hero,.membercard,.membercard__avatar,.membercard__info,.nav__menu,.orgs__title{overflow:hidden}.modal__body,.orgs{margin-top:20px;position:relative;width:100%;border-top:1px solid #dfdfdf;background-color:#fff}@media screen and (min-width:48em){.whiteWrapper{height:80px;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.modal__body,.orgs{border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-left:1px solid #dfdfdf;border-right:1px solid #dfdfdf}}.modal__body:first-of-type,.orgs:first-of-type{margin-top:10px}.orgs__title{color:#4d4d4d;padding:.8rem;margin:0}.brand{position:relative;width:180px;height:90px;margin:10px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.brand:hover .brand__logo{opacity:.6;-webkit-filter:grayscale(1);filter:grayscale(1);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.brand__controls,.brand__link,.brand__more{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.brand__controls{width:100%;height:100%;opacity:0;visibility:hidden;position:absolute;z-index:2;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:rgba(255,255,255,.5);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.about,.counters__counter{background-color:#fff;box-sizing:border-box}.brand__link,.brand__more{opacity:.95;font-size:1.8rem;border:3px solid #333;border-radius:50%;background-clip:padding-box;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;margin:10px;padding:.2rem;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.brand__link:hover,.brand__more:hover{border:3px solid #533770}.brand__logo{position:relative;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);opacity:1;-webkit-filter:grayscale(.4);filter:grayscale(.4);width:auto;max-height:90px;max-width:170px;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955);image-rendering:-moz-optimizeSpeed}.about{border:1px solid #dfdfdf;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;margin-top:50%}@media screen and (min-width:48em){.about{margin-top:400px}}.about__header{height:auto;max-height:500px;width:100%;position:absolute;right:0;left:0;top:0}.about__overimage{content:'';width:100%;height:auto}.about__overimage::after{content:"";background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFUlEQVQIHWNgYGB4/P//fwZGEAECAEVMBt9tNvSUAAAAAElFTkSuQmCC);opacity:.5;top:0;left:0;bottom:0;right:0;position:absolute;z-index:-1}.counters{z-index:3;border-bottom:1px solid #dfdfdf}@media screen and (min-width:75em){.counters{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border:none;margin-top:-50px}}@media screen and (max-width:47.99em){.counters{-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}}.counters__counter{width:25%;min-width:150px;font-size:4rem;line-height:1;font-weight:300;color:#333;text-align:center;height:170px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;position:relative;padding-top:25px}.hero,.tabsMenu{-webkit-box-pack:center}@media screen and (min-width:75em){.counters__counter{margin:10px;width:219.5px;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border:1px solid #dfdfdf}}.counters__label{font-size:1.1rem;font-weight:400;width:150px;margin:0 auto}.counters__count{position:relative}.nav,.topbarWrapper,.topbar__appname,.topbar__trigger{position:absolute;top:0}.counters__count:after{content:'';display:block;background:#4d4d4d;height:4px;max-width:150px;width:50%;margin:10px auto}.topbarWrapper{left:0;right:0;z-index:4;background-color:#fff;border-bottom:1px solid #dfdfdf;-webkit-transition:background-color .2s cubic-bezier(.455,.03,.515,.955),border-bottom .2s cubic-bezier(.455,.03,.515,.955);transition:background-color .2s cubic-bezier(.455,.03,.515,.955),border-bottom .2s cubic-bezier(.455,.03,.515,.955)}.footer__pwr,.topbar__logo{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}@media screen and (min-width:48em){.topbarWrapper{border-bottom:1px solid transparent;background-color:#fcfcfc}}.topbarWrapper--hidden{background-color:#fff;border-bottom:1px solid #dfdfdf}@media screen and (min-width:48em){.topbarWrapper--hidden{border-bottom:0}}.topbarWrapper--visible{background-color:#fff;border-bottom:1px solid #dfdfdf}.topbar{padding:10px;height:50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;zoom:1}.topbar:after,.topbar:before{content:"";display:table}.topbar__logo{transition:all .2s cubic-bezier(.455,.03,.515,.955);background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHZpZXdCb3g9IjAgMCAzMDAgNTAiCiAgIGhlaWdodD0iNTAiCiAgIHdpZHRoPSIzMDAiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzIiPjxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTgiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PGRjOnRpdGxlPjwvZGM6dGl0bGU+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgICAgaWQ9ImRlZnM2Ij48bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ0IgogICAgICAgc3ByZWFkTWV0aG9kPSJwYWQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDE0LjY0NDY0LDYzLjQ2MDEyLC01NS41NjcyNywxMi44MjMyMiwzMjEuNzk4MywyNzcuMDM5MykiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHkyPSIwIgogICAgICAgeDI9IjAuNjk5OTk5OTkiCiAgICAgICB5MT0iMCIKICAgICAgIHgxPSIwLjMwMDAwMDAxIj48c3RvcAogICAgICAgICBpZD0ic3RvcDQ2IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLW9wYWNpdHk6MTtzdG9wLWNvbG9yOiMyZjE2MzYiIC8+PHN0b3AKICAgICAgICAgaWQ9InN0b3A0OCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1vcGFjaXR5OjE7c3RvcC1jb2xvcjojNmM0MmE0IiAvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2MiIKICAgICAgIHNwcmVhZE1ldGhvZD0icGFkIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMTQuNjQ0NjQsLTYzLjQ2MDEyLDU1LjU2NzI3LC0xMi44MjMyMiwyODEuMDQ4LDM0MC45MTM1KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeTI9IjAiCiAgICAgICB4Mj0iMC42OTk5OTk5OSIKICAgICAgIHkxPSIwIgogICAgICAgeDE9IjAuMzAwMDAwMDEiPjxzdG9wCiAgICAgICAgIGlkPSJzdG9wNjQiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3Atb3BhY2l0eToxO3N0b3AtY29sb3I6IzJmMTYzNiIgLz48c3RvcAogICAgICAgICBpZD0ic3RvcDY2IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLW9wYWNpdHk6MTtzdG9wLWNvbG9yOiM2YzQyYTQiIC8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSIwIgogICAgICAgeDI9IjAuNjk5OTk5OTkiCiAgICAgICB5MT0iMCIKICAgICAgIHgxPSIwLjMwMDAwMDAxIgogICAgICAgc3ByZWFkTWV0aG9kPSJwYWQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDE0LjY0NDY0LDYzLjQ2MDEyLC01NS41NjcyNywxMi44MjMyMiwzMjEuNzk4MywyNzcuMDM5MykiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQyMTQiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NCIgLz48bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSIwIgogICAgICAgeDI9IjAuNjk5OTk5OTkiCiAgICAgICB5MT0iMCIKICAgICAgIHgxPSIwLjMwMDAwMDAxIgogICAgICAgc3ByZWFkTWV0aG9kPSJwYWQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xNC42NDQ2NCwtNjMuNDYwMTIsNTUuNTY3MjcsLTEyLjgyMzIyLDI4MS4wNDgsMzQwLjkxMzUpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MjE2IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjIiIC8+PGxpbmVhckdyYWRpZW50CiAgICAgICB5Mj0iMCIKICAgICAgIHgyPSIwLjY5OTk5OTk5IgogICAgICAgeTE9IjAiCiAgICAgICB4MT0iMC4zMDAwMDAwMSIKICAgICAgIHNwcmVhZE1ldGhvZD0icGFkIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxNC42NDQ2NCw2My40NjAxMiwtNTUuNTY3MjcsMTIuODIzMjIsMzIxLjc5ODMsMjc3LjAzOTMpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MjI4IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDQiIC8+PGxpbmVhckdyYWRpZW50CiAgICAgICB5Mj0iMCIKICAgICAgIHgyPSIwLjY5OTk5OTk5IgogICAgICAgeTE9IjAiCiAgICAgICB4MT0iMC4zMDAwMDAwMSIKICAgICAgIHNwcmVhZE1ldGhvZD0icGFkIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMTQuNjQ0NjQsLTYzLjQ2MDEyLDU1LjU2NzI3LC0xMi44MjMyMiwyODEuMDQ4LDM0MC45MTM1KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDIzMCIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDYyIiAvPjwvZGVmcz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNTAuMDAwMDE4KSIKICAgICBpZD0iZzEwIj48ZwogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOC43NDIzMDY3LDApIgogICAgICAgaWQ9Imc0Mzc5Ij48ZwogICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjMxMTc3MjQ1LDAsMCwwLjMxMTc3MjQ1LC0xNy4yNTI5NTQsLTcyLjc5Nzg4NikiCiAgICAgICAgIGlkPSJnNDE5OCI+PGcKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjc3ODU0NTYsLTAuNDM2OTc0MDgsMC40MzY5Nzk4NiwyLjc3ODU4MjQsLTkwNy40ODkyNSwtNzIzLjQ0NjMyKSIKICAgICAgICAgICBpZD0iZzQyMTEtMSI+PGcKICAgICAgICAgICAgIGlkPSJnMzQtNiIKICAgICAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjEwNzI0NjksMTA0Ljc5NjE2KSI+PGcKICAgICAgICAgICAgICAgaWQ9ImczNi01Ij48ZwogICAgICAgICAgICAgICAgIGlkPSJnNDItOCI+PHBhdGgKICAgICAgICAgICAgICAgICAgIGQ9Im0gMzAxLjQyMzIsMzMxLjY1MzUgYyAxMi41MjIzLDAgMjIuNjc3NCwtMTAuMTU1MSAyMi42Nzc0LC0yMi42Nzc0IDAsLTEwLjU2NDcgLTcuMjI4MywtMTkuNDQ0NSAtMTcuMDA4MSwtMjEuOTYyNiBsIDAsMCBjIC05Ljc3OTgsMi41MTgzIC0xNy4wMDc5LDExLjM5NzkgLTE3LjAwNzksMjEuOTYyNiAwLC02LjI2MTIgNS4wNzc0LC0xMS4zMzg2IDExLjMzODYsLTExLjMzODYgNi4yNjExLDAgMTEuMzM4Niw1LjA3NzcgMTEuMzM4NiwxMS4zMzg2IDAsMTAuNTY1IC03LjIyODEsMTkuNDQ0NSAtMTcuMDA3OSwyMS45NjI1IDEuODExOSwwLjQ2NjYgMy43MTE3LDAuNzE0OSA1LjY2OTMsMC43MTQ5IgogICAgICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDQyMTQpO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgICAgICAgICAgaWQ9InBhdGg1MC02IiAvPjwvZz48L2c+PC9nPjxnCiAgICAgICAgICAgICBpZD0iZzUyLTYiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNy4xMDcyNDY5LDEwNC43OTYxNikiPjxnCiAgICAgICAgICAgICAgIGlkPSJnNTQtNSI+PGcKICAgICAgICAgICAgICAgICBpZD0iZzYwLTgiPjxwYXRoCiAgICAgICAgICAgICAgICAgICBkPSJtIDMwMS40MjMyLDI4Ni4yOTkyIGMgLTEyLjUyMjMsMCAtMjIuNjc3NSwxMC4xNTUxIC0yMi42Nzc1LDIyLjY3NzUgMCwxMC41NjQ3IDcuMjI4NCwxOS40NDQ1IDE3LjAwODIsMjEuOTYyNSBsIDAsMCBjIDkuNzc5OCwtMi41MTgzIDE3LjAwNzksLTExLjM5NzggMTcuMDA3OSwtMjEuOTYyNSAwLDYuMjYxMSAtNS4wNzc1LDExLjMzODUgLTExLjMzODYsMTEuMzM4NSAtNi4yNjEyLDAgLTExLjMzODYsLTUuMDc3NyAtMTEuMzM4NiwtMTEuMzM4NSAwLC0xMC41NjUgNy4yMjgxLC0xOS40NDQ2IDE3LjAwNzksLTIxLjk2MjYgLTEuODExOSwtMC40NjY2IC0zLjcxMTcsLTAuNzE0OSAtNS42NjkzLC0wLjcxNDkiCiAgICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDIxNik7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgICAgICBpZD0icGF0aDY4LTciIC8+PC9nPjwvZz48L2c+PC9nPjxnCiAgICAgICAgICAgaWQ9Imc0MTc0Ij48ZwogICAgICAgICAgICAgaWQ9Imc0MjExIgogICAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMi44MTI2OTY2LDAsMCwyLjgxMjczMzgsLTczNi43MjEzOSwtODY2LjE5NDMxKSI+PGcKICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTcuMTA3MjQ2OSwxMDQuNzk2MTYpIgogICAgICAgICAgICAgICBpZD0iZzM0Ij48ZwogICAgICAgICAgICAgICAgIGlkPSJnMzYiPjxnCiAgICAgICAgICAgICAgICAgICBpZD0iZzQyIj48cGF0aAogICAgICAgICAgICAgICAgICAgICBpZD0icGF0aDUwIgogICAgICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDIyOCk7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgICAgICAgIGQ9Im0gMzAxLjQyMzIsMzMxLjY1MzUgYyAxMi41MjIzLDAgMjIuNjc3NCwtMTAuMTU1MSAyMi42Nzc0LC0yMi42Nzc0IDAsLTEwLjU2NDcgLTcuMjI4MywtMTkuNDQ0NSAtMTcuMDA4MSwtMjEuOTYyNiBsIDAsMCBjIC05Ljc3OTgsMi41MTgzIC0xNy4wMDc5LDExLjM5NzkgLTE3LjAwNzksMjEuOTYyNiAwLC02LjI2MTIgNS4wNzc0LC0xMS4zMzg2IDExLjMzODYsLTExLjMzODYgNi4yNjExLDAgMTEuMzM4Niw1LjA3NzcgMTEuMzM4NiwxMS4zMzg2IDAsMTAuNTY1IC03LjIyODEsMTkuNDQ0NSAtMTcuMDA3OSwyMS45NjI1IDEuODExOSwwLjQ2NjYgMy43MTE3LDAuNzE0OSA1LjY2OTMsMC43MTQ5IiAvPjwvZz48L2c+PC9nPjxnCiAgICAgICAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjEwNzI0NjksMTA0Ljc5NjE2KSIKICAgICAgICAgICAgICAgaWQ9Imc1MiI+PGcKICAgICAgICAgICAgICAgICBpZD0iZzU0Ij48ZwogICAgICAgICAgICAgICAgICAgaWQ9Imc2MCI+PHBhdGgKICAgICAgICAgICAgICAgICAgICAgaWQ9InBhdGg2OCIKICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDQyMzApO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgICAgICAgICAgICBkPSJtIDMwMS40MjMyLDI4Ni4yOTkyIGMgLTEyLjUyMjMsMCAtMjIuNjc3NSwxMC4xNTUxIC0yMi42Nzc1LDIyLjY3NzUgMCwxMC41NjQ3IDcuMjI4NCwxOS40NDQ1IDE3LjAwODIsMjEuOTYyNSBsIDAsMCBjIDkuNzc5OCwtMi41MTgzIDE3LjAwNzksLTExLjM5NzggMTcuMDA3OSwtMjEuOTYyNSAwLDYuMjYxMSAtNS4wNzc1LDExLjMzODUgLTExLjMzODYsMTEuMzM4NSAtNi4yNjEyLDAgLTExLjMzODYsLTUuMDc3NyAtMTEuMzM4NiwtMTEuMzM4NSAwLC0xMC41NjUgNy4yMjgxLC0xOS40NDQ2IDE3LjAwNzksLTIxLjk2MjYgLTEuODExOSwtMC40NjY2IC0zLjcxMTcsLTAuNzE0OSAtNS42NjkzLC0wLjcxNDkiIC8+PC9nPjwvZz48L2c+PC9nPjxnCiAgICAgICAgICAgICBpZD0iZzQyMzMiCiAgICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjYzNDkzMTMsMCwwLDIuNjM0OTMxMywyOS42ODIwMiwyMzcuNTYxMTQpIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MSI+PHBhdGgKICAgICAgICAgICAgICAgaWQ9InBhdGgxNCIKICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICAgICAgZD0ibSAyNjguNDQxMjIsMTEuNDYxNDE0IDguNTA0LDAgMCw5LjkyMTMgNS42NjkzLDAgMCwtOS45MjEzIDguNTAzOSwwIDAsMTkuODQyNiBjIDAsMS41NjUzIC0xLjI2OTQsMi44MzQ2IC0yLjgzNDYsMi44MzQ2IGwgLTUuNjY5MywwIC01LjY2OTMsMCAtNS42NjkzLDAgYyAtMS41NjUzLDAgLTIuODM0NywtMS4yNjkzIC0yLjgzNDcsLTIuODM0NiBsIDAsLTE5Ljg0MjYgeiBtIDguNTA0LDEyLjc1NiAwLDcuMDg2NiA1LjY2OTMsMCAwLC03LjA4NjYgLTUuNjY5MywwIHoiIC8+PHBhdGgKICAgICAgICAgICAgICAgaWQ9InBhdGgxNiIKICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICAgICAgZD0ibSA3Mi44NTA3MTcsMjYuODQ4MjE0IDEyLjQxOTEsLTQuNTIwMSBjIDEuMDI5LC0wLjQyNTIgMS43NTQxLC0xLjQzODMgMS43NTQxLC0yLjYyMDcgbCAwLC01LjQxMTMgYyAwLC0xLjU2NTMgLTEuMjY5MywtMi44MzQ3IC0yLjgzNDYsLTIuODM0NyBsIC01LjY2OTMsMCAtMTQuMTczMywwIDAsMi44MzQ3IDE0LjE3MzMsMCAwLDQuNDU1NSAtMTIuNDIxMiw0LjUyMSBjIC0xLjAyNzgsMC40MjU3IC0xLjc1MjEsMS40Mzg1IC0xLjc1MjEsMi42MiBsIDAsNS40MTE0IGMgMCwxLjU2NTMgMS4yNjk0LDIuODM0NiAyLjgzNDcsMi44MzQ2IGwgNS42NjkzLDAgMTQuMTczMiwwIDAsLTIuODM0NiAtMTQuMTczMiwwIDAsLTQuNDU1OCB6IiAvPjxwYXRoCiAgICAgICAgICAgICAgIGlkPSJwYXRoMTgiCiAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgIGQ9Im0gMjAzLjI0NDQyLDIxLjM4MjcxNCBjIDAsLTMuMzA2OSAwLC02LjYxNDQgMCwtOS45MjEzIGwgOC41MDM5LDAgYyAwLDIuODM0NyAwLDUuNjY5NiAwLDguNTA0MyAwLDEuNTY1MyAtMS4yNjkzLDIuODM0NiAtMi44MzQ2LDIuODM0NiAxLjU1NzYsMCAyLjgzNDYsMS4yNzcgMi44MzQ2LDIuODM0NyAwLDEuNDE3IDAsNC4yNTE5IDAsNS42NjkgMCwxLjU2NTMgLTEuMjY5MywyLjgzNDYgLTIuODM0NiwyLjgzNDYgbCAtNS42NjkzLDAgLTUuNjY5MywwIC01LjY2OTMsMCBjIC0xLjU2NTMsMCAtMi44MzQ2LC0xLjI2OTMgLTIuODM0NiwtMi44MzQ2IGwgMCwtMTkuODQyNiA4LjUwMzksMCBjIDAsMy4zMDY5IDAsNi42MTQ0IDAsOS45MjEzIGwgNS42NjkzLDAgeiBtIC01LjY2OTMsMi44MzQ3IDUuNjY5MywwIDAsNy4wODY2IC01LjY2OTMsMCAwLC03LjA4NjYgeiIgLz48cGF0aAogICAgICAgICAgICAgICBpZD0icGF0aDIwIgogICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgICAgICBkPSJtIDEyNi43MDkwMiwxMS40NjE0MTQgOC41MDM5LDAgYyAwLDYuNjE0MSAwLDEzLjIyODUgMCwxOS44NDI2IGwgNS42NjkzLDAgYyAwLC02LjYxNDEgMCwtMTMuMjI4NSAwLC0xOS44NDI2IGwgOC41MDM5LDAgMCwxOS44NDI2IGMgMCwxLjU2NTMgLTEuMjY5MywyLjgzNDYgLTIuODM0NiwyLjgzNDYgbCAtNS42NjkzLDAgLTUuNjY5MywwIC01LjY2OTMsMCBjIC0xLjU2NTMsMCAtMi44MzQ2LC0xLjI2OTMgLTIuODM0NiwtMi44MzQ2IGwgMCwtMTkuODQyNiB6IiAvPjxwYXRoCiAgICAgICAgICAgICAgIGlkPSJwYXRoMjIiCiAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgIGQ9Im0gMTYwLjcyNDcyLDExLjQ2MTQxNCAxOS44NDI1LDAgMCwyLjgzNDcgLTE0LjE3MzIsMCAwLDcuMDg2NiA5LjU1NjcsMCAwLDIuODM0NyAtOS41NTY3LDAgMCw3LjA4NjYgMTQuMTczMiwwIDAsMi44MzQ2IC0xOS44NDI1LDAgYyAtMS41NjUzLDAgLTIuODM0NiwtMS4yNjkzIC0yLjgzNDYsLTIuODM0NiBsIDAsLTE3LjAwNzkgYyAwLC0xLjU1NzYgMS4yNzY3LC0yLjgzNDcgMi44MzQ2LC0yLjgzNDciIC8+PHBhdGgKICAgICAgICAgICAgICAgaWQ9InBhdGgyNCIKICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICAgICAgZD0ibSAyNTEuNDMzNDIsMTEuNDYxNDE0IDguNTAzOSwwIGMgMCw3LjU1ODkgMCwxNS4xMTgzIDAsMjIuNjc3MiBsIC01LjY2OTMsMCBjIC0xLjU2NTMsMCAtMi44MzQ2LC0xLjI2OTMgLTIuODM0NiwtMi44MzQ2IGwgMCwtMTkuODQyNiB6IiAvPjxwYXRoCiAgICAgICAgICAgICAgIGlkPSJwYXRoMjYiCiAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgIGQ9Im0gMjMxLjU5MDgyLDIxLjM4MjcxNCAyLjgzNDcsMCBjIDAsLTIuMzYyMSAwLC00LjcyNDUgMCwtNy4wODY2IGwgLTUuNjY5MywwIGMgMCw1LjY2OSAwLDExLjMzODkgMCwxNy4wMDc5IDQuNzI0MiwwIDkuNDQ5LDAgMTQuMTczMiwwIGwgMCwyLjgzNDYgLTguNTAzOSwwIC01LjY2OTMsMCAtNS42NjkzLDAgYyAtMS41NjUzLDAgLTIuODM0NiwtMS4yNjkzIC0yLjgzNDYsLTIuODM0NiAwLC01LjY2OTMgMCwtMTEuMzM4NiAwLC0xNy4wMDc5IDAsLTEuNTY1MyAxLjI2OTMsLTIuODM0NyAyLjgzNDYsLTIuODM0NyA1LjY2OSwwIDExLjMzODksMCAxNy4wMDc5LDAgMS41NjUzLDAgMi44MzQ2LDEuMjY5NCAyLjgzNDYsMi44MzQ3IDAsMi4zNjIxIDAsNC43MjQ1IDAsNy4wODY2IDAsMS41NjUzIC0xLjI2OTMsMi44MzQ3IC0yLjgzNDYsMi44MzQ3IC0yLjgzNDQsMCAtNS42Njk2LDAgLTguNTA0LDAgbCAwLC0yLjgzNDcgeiIgLz48cGF0aAogICAgICAgICAgICAgICBpZD0icGF0aDI4IgogICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgICAgICBkPSJtIDk1LjUyNzgxNywzNC4xMzg2MTQgOC41MDM5OTMsMCBjIDAsLTYuNjE0MSAwLC0zLjMwNzIgMCwtOS45MjEyIGwgNS42NjkzLDAgYyAwLDYuNjE0IDAsMy4zMDcxIDAsOS45MjEyIGwgOC41MDM5MSwwIDAsLTkuOTIxMiBjIDAsLTEuNTY1MyAtMS4yNjkzLC0yLjgzNDcgLTIuODM0NiwtMi44MzQ3IGwgLTQuMjUyMDEsMCAwLC05LjkyMTMgLTguNTAzOSwwIDAsOS45MjEzIC00LjI1MTk5MywwIGMgLTEuNTY1MywwIC0yLjgzNDcsMS4yNjk0IC0yLjgzNDcsMi44MzQ3IGwgMCw5LjkyMTIgeiIgLz48L2c+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPgo=);display:block;width:50px;height:50px;z-index:1}.no-svg .topbar__logo{background-image:url(data:image/png;base64,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)}@media only screen and (-moz-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3 / 2),only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.no-svg .topbar__logo{background-image:url(data:image/png;base64,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)}}@media screen and (min-width:48em){.topbar{background-color:transparent;padding:10px 0;margin:5px auto}.topbar__logo{width:300px;height:50px}}.topbar__logo--circle{height:50px;width:50px}.topbar__appname{pointer-events:none;display:block;width:100%;height:100%;left:0;font-weight:300;font-size:1.5em;line-height:65px;margin:0;z-index:1}@media screen and (min-width:48em){.topbar__appname{display:none}}.topbar__trigger{display:inline-block;float:right;z-index:2;height:70px;right:10px}.nav{bottom:0;left:0;right:0}@media screen and (min-width:48em){.topbar__trigger{display:none}.nav{position:relative;display:inline-block;padding:0;height:50px;margin-left:auto}}.nav__menu{display:none;list-style-type:none;position:relative;left:0;right:0;top:70px;margin:0 -10px;background-color:#fff;padding:0;font-weight:700;border-bottom:1px solid #dfdfdf;box-shadow:0 2px 2px 0 rgba(0,0,0,.05)}@media screen and (min-width:48em){.nav__menu{list-style-type:none;top:0;margin:0;padding:2px 0;display:inline-block;float:right;text-align:inherit;position:relative;background-color:transparent;border-bottom:0;box-shadow:0 0 0 0 transparent}}.hero,.hero__middle{width:100%;position:relative;background-color:#533770}.nav__item{display:block;padding:5px 0;margin:0 5px;position:relative}.nav__item:last-child{padding:15px 0}@media screen and (min-width:48em){.nav__item{display:inline-block;padding:0;margin:0}.nav__item:last-child{padding:5px 0}}.footer,.hero{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.nav__item--current{border:0 solid transparent!important}@media screen and (min-width:48em){.nav__item:first-of-type{border:2px solid #855eaf}}.hero{display:flex;height:100vh;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:height 99999s ease;transition:height 99999s ease}.hero__middle{text-align:center}@media screen and (min-width:62em){.hero__middle{border-left:12px solid #533770;border-right:12px solid #533770;width:800px;position:absolute;height:inherit;margin-left:auto;margin-right:auto;left:0;right:0;z-index:3;-webkit-transform:skewX(-15deg);-ms-transform:skewX(-15deg);transform:skewX(-15deg);overflow:hidden;-webkit-transition:all .6s cubic-bezier(.455,.03,.515,.955);transition:all .6s cubic-bezier(.455,.03,.515,.955)}}.hero__middle--collapsedL{-webkit-transform:translate3d(365px,0,0) skewX(-15deg);transform:translate3d(365px,0,0) skewX(-15deg)}.hero__middle--collapsedR{-webkit-transform:translate3d(-365px,0,0) skewX(-15deg);transform:translate3d(-365px,0,0) skewX(-15deg)}.hero__middleTitle{white-space:nowrap;font-size:4rem;color:#fcfcfc;font-weight:900;letter-spacing:-3px;position:absolute;top:20%;left:0;right:0;margin-left:auto;margin-right:auto;z-index:2}@media screen and (min-width:62em){.hero__middleTitle{-webkit-transform:skewX(15deg);-ms-transform:skewX(15deg);transform:skewX(15deg);font-size:8rem;margin-bottom:0;bottom:0;top:auto;line-height:.6;text-align:left;-webkit-transition:all .4s cubic-bezier(.455,.03,.515,.955);transition:all .4s cubic-bezier(.455,.03,.515,.955)}}@media screen and (min-width:48em) and (max-width:61.99em){.hero__middleTitle{font-size:9rem;top:7%}}.hero__leftTitle,.hero__rightTitle{opacity:0;font-weight:900;letter-spacing:-6px;font-size:8rem;z-index:2;position:absolute;top:auto;margin-bottom:0;line-height:.6;display:inline-block;bottom:0;text-transform:uppercase;white-space:nowrap}.hero__middleTitle--animation{opacity:0;-webkit-animation:1s cubic-bezier(.455,.03,.515,.955) 1s fadeIn forwards;animation:1s cubic-bezier(.455,.03,.515,.955) 1s fadeIn forwards}.hero__middleTitle--opacity0{opacity:0}.hero__leftTitle{text-align:right;color:#fcfcfc;right:325px;-webkit-transform:none;-ms-transform:none;transform:none;-webkit-transition:all .4s cubic-bezier(.455,.03,.515,.955);transition:all .4s cubic-bezier(.455,.03,.515,.955)}.hero__rightTitle{color:#fff;-webkit-transform:none;-ms-transform:none;transform:none;left:160px;text-align:left;-webkit-transition:all .4s cubic-bezier(.455,.03,.515,.955);transition:all .4s cubic-bezier(.455,.03,.515,.955)}.counter,.footer,.membercard__info,.membercard__name,.nojs__info,dl.archive-year h2{text-align:center}.hero__middleImg{-webkit-transition:height 99999s ease;transition:height 99999s ease;-o-object-fit:cover;object-fit:cover;width:auto;margin-left:-25%}@media screen and (min-width:48em){.hero__middleImg{width:100vw;margin-left:0}}.hero__middleImg--opacity60{opacity:.4!important}.hero__left,.hero__right{display:none}@media screen and (min-width:62em){.hero__middleImg{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955);margin-left:-15%;width:100vw;height:auto;-webkit-transform:skewX(15deg);-ms-transform:skewX(15deg);transform:skewX(15deg)}.hero__left,.hero__right{will-change:transform;position:relative;z-index:0;-webkit-transition:all .6s cubic-bezier(.455,.03,.515,.955);transition:all .6s cubic-bezier(.455,.03,.515,.955);display:block;opacity:.9}}.hero__left--mvR,.hero__left:hover .hero__leftTitle,.hero__left:hover .hero__rightTitle,.hero__right:hover .hero__rightTitle{opacity:1}.hero__right--mvL{-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0);opacity:1;z-index:2}.hero__leftImg,.hero__rightImg{width:1280px;height:auto}.hero__left--mvR{-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0);z-index:2}.footer-wrapper{background-color:#6c4892;height:100vh;position:fixed;bottom:0;width:100%;z-index:-1;background:-webkit-linear-gradient(240deg,#5566e2,#b226f9,#6c42a4,#5566e2);background:linear-gradient(210deg,#5566e2,#b226f9,#6c42a4,#5566e2);background-size:600% 600%}@-webkit-keyframes AnimationName{0%,100%{background-position:0 51%}50%{background-position:100% 50%}}@keyframes AnimationName{0%,100%{background-position:0 51%}50%{background-position:100% 50%}}.footer-wrapper--animate{-webkit-animation:AnimationName 30s ease infinite;animation:AnimationName 30s ease infinite}.footer{color:#fff;display:flex;height:inherit;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;margin:0 auto}.counter,.nojs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;-webkit-box-orient:vertical;-webkit-box-direction:normal}@media screen and (min-width:62em){.footer{width:1000px}}.footer__pwr{height:200px;margin:40px;width:auto;fill:#fff;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.membercard,.membercard__name--tooLong:hover>.link{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.footer__mknm{margin:5px 10px 50px}.footer__others{margin:10px 10px 5px;font-size:.75em}.footer__social{margin:20px;font-size:2em}.nojs{position:fixed;height:100vh;width:100vw;background-color:#fcfcfc;z-index:2;overflow-y:hidden;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.nojs__logo{margin:50px}.nojs__info{-webkit-align-self:stretch;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;height:75%;background-color:#fff;box-shadow:2px 0 2px 0 rgba(0,0,0,.05);border-top:1px solid #dfdfdf}dl.archive-year{margin:10px;width:235px;display:inline-block}dl.archive-year h2{font-size:3em;margin-bottom:0}.avatar{-o-object-fit:cover;width:128px;height:128px;background:#fff;border-radius:64px;object-fit:cover}.counter{line-height:1.2;width:50%;position:relative;font-size:2.3rem;font-weight:100;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.membercard,.membercard__counter{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.counter:first-of-type{border-right:1px solid #dfdfdf}.counter__label{padding:0 10px;font-size:.8rem}.membercard{box-sizing:border-box;margin:10px;width:235px;height:350px;display:flex;position:relative;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;background-color:#fff;border:1px solid #dfdfdf;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.membercard__avatar{margin:25px 0 0;width:100%;text-align:center}.membercard__info{width:calc(100% - 10px)}.membercard__socialLinks{margin:10px 0}.membercard__name{margin:20px 0 0;font-size:1.7rem;font-weight:400;position:relative}.membercard__name--tooLong{text-align:justify;display:block}.membercard__name--tooLong:hover>.link{transition:all .2s cubic-bezier(.455,.03,.515,.955);margin-left:calc(100% - 245px)}.membercard__name--tooLong:after{display:block;height:42px;width:15px;background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);content:"";position:absolute;top:0;right:0}.membercard__status{font-weight:300;font-size:1em;font-style:italic}.membercard__counter{margin-top:15px;display:flex;position:relative;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.membercardSmall,.membercardSmallContainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;position:relative}.membercardSmallContainer{display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;background-color:#fff;border-bottom:1px solid #dfdfdf;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;padding:0 10px}.membercardSmall{display:flex;min-width:235px}.blogcard,.tabsMenu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.membercardSmall__avatarWrapper{position:relative;height:50px;width:50px;margin:10px}.membercardSmall__avatar{position:relative;overflow:hidden;width:50px;height:50px;background:#fff;border-radius:25px;-o-object-fit:cover;object-fit:cover}.membercardSmall__counter{width:20px;height:20px;background:#6c4892;border-radius:10px;-o-object-fit:cover;object-fit:cover;position:absolute;right:-3px;top:-3px;font-weight:600;font-size:10px;text-align:center;line-height:20px;color:#fff}.membercardSmall__name{margin:10px 0 0;line-height:1.1;font-weight:400;width:calc(100% - 65px);font-size:1.5em}.blogcard{border:1px solid #dfdfdf;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;height:150px;display:flex;position:relative;margin:10px;background-color:#fff}.blogcard__tags,.blogcard__time,.blogcard__title{margin:10px 10px 10px 20px}.blogcard__wrapper{display:block;position:absolute;bottom:0;left:150px}.blogcard__title{line-height:1.1;font-weight:400;font-size:1.7rem;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.blogcard__tag{margin-left:5px}.blogcard__tag:first-of-type{margin-left:0}.navicon-button{display:inline-block;position:relative;padding:2.0625rem .625rem;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navicon-button .navicon:after,.navicon-button .navicon:before{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.navicon,.navicon:after,.navicon:before{height:.2rem;background:#333;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);border-radius:.2rem}.navicon{position:relative;width:2em;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.navicon:after,.navicon:before{display:block;content:"";width:2rem;position:absolute;z-index:-1;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.btn--full,.link--tab{width:100%}.link,.open .navicon:after,.open .navicon:before{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.navicon:before{top:.625rem}.navicon:after{top:-.625rem}.open:not(.steps) .navicon:after,.open:not(.steps) .navicon:before{top:0!important}.open .navicon:after,.open .navicon:before{transition:all .2s cubic-bezier(.455,.03,.515,.955)}.open.x .navicon{background:0 0}.open.x .navicon:before{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.open.x .navicon:after{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.link{color:#6c4892;position:relative;text-decoration:none;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.btn,.link--footer:before{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.link:hover{color:#855eaf;text-decoration:underline;text-decoration:none}.btn,.btn:hover,.dropy__content a,.dropy__title,.link--name,.link--nav{text-decoration:none}.link:focus{outline:0;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.link--nav{display:block;padding:5px 10px}.link--current{color:#9f9f9f}.link--glowing{color:#fff}.link--glowing:hover{text-shadow:0 0 2px #FFF;color:#fff}.link--name,.link--name:hover,.link--social,.link--tag{color:#333}.link--controls,.link--social:hover,.link--tag:hover{color:#4d4d4d}.link--controls:hover{color:#533770}.link--footer{color:#fff;padding:2px;margin:0 2px;box-sizing:border-box;position:relative}.link--footer:before{content:'';border-bottom:solid 1px #fff;position:absolute;bottom:5px;left:0;height:1px;width:100%;opacity:0;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.btn,.btn--loadMore,.dropy,.dropy__title{position:relative}.link--footer:hover{color:#fff}.link--footer:hover:before{opacity:1}.link--tab{padding:10px 15px;color:#4d4d4d;font-weight:500;text-transform:uppercase;text-align:center}.btn,.link--tab:hover{color:#333}.btn{display:inline-block;text-align:center;border:none;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;margin:0;overflow:visible;padding:.8em;transition:all .2s cubic-bezier(.455,.03,.515,.955);line-height:1.3}.btn--full,.btn--loadMore{display:block;text-align:center}.dropy__content ul,.dropy__title{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.btn--small{font-size:.75em}.btn--large{font-size:1.25em}.btn--pagination{margin:0 10px;text-transform:uppercase}.btn--pagination:hover{background-color:#D2D2D2;color:#333}.btn--pagination:active{background-color:#b9b9b9}.btn--pagination:disabled{background-color:#fff}.btn--readmore{margin:0 10px;font-weight:700;color:#4d4d4d}.btn--readmore:hover{background-color:#D2D2D2;color:#333}.btn--readmore:active{background-color:#b9b9b9}.btn--readmore:disabled{background-color:#fff}.btn--loadMore{margin:20px auto 0;text-transform:uppercase;min-width:151px;min-height:46px}.btn--synergia{background-color:#855eaf;color:#fff}.btn--synergia:hover{background-color:#6c4892}.btn--synergia:active{background-color:#533770}.btn--synergia:disabled{background-color:#bababa}.btn--info{background-color:#3498db}.btn--positive{background-color:#27ae60}.btn--negative{background-color:#c0392b}.btn--warning{background-color:#e67e22}.btn--raised{box-shadow:0 2px 5px 0 rgba(0,0,0,.26),0 2px 10px 0 rgba(0,0,0,.22)}.btn--raised:active{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.download-button-container{margin:0 -30px;padding:0 30px;border-top:1px solid #dfdfdf}dl,ul{-webkit-margin-before:0;-webkit-margin-after:0;-webkit-padding-start:0}dd{-webkit-margin-start:0}.dropy{margin-bottom:0}.dropy__title{display:inline-block;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.dropy__content{position:absolute;top:0;right:0;left:0;width:300px;z-index:1}.card,.card__image,.card__overimage{position:relative}.dropy__content ul{overflow:hidden;border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;max-height:0;opacity:0;padding:0;transition:all .2s cubic-bezier(.455,.03,.515,.955);list-style:none;background:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.26),0 2px 10px 0 rgba(0,0,0,.22)}.card,.tooltip{background-clip:padding-box}.dropy__content a{display:block;color:#333;padding:1rem 1.5rem;font-size:1.4rem;cursor:pointer;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dropy__content a:hover{color:#6c4892;background-color:#ececec}.dropy__content .dropy__header{border-bottom:1px solid #D2D2D2;margin-bottom:1.5rem;padding:1rem 1.5rem;font-size:1.6rem}.dropy__content .selected{font-weight:700!important;color:#6c4892}.dropy.open .dropy__content ul{max-height:17rem;overflow-y:auto;opacity:1}.card,.card__overimage,.doNotScroll,.error404,.noWrap,.note,.project__header,.project__meta,.swipe,.swipe-wrap,.video-container{overflow:hidden}.card{box-sizing:border-box;display:inline-block;vertical-align:top;margin:10px;border:1px solid #dfdfdf;width:320px;z-index:3;border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.card__excerpt{padding:1.25em;border-radius:0 0 .125em .125em;height:5em;background-color:#fff;color:#4d4d4d;font-size:1.063rem}@media screen and (max-width:61.99em){.card__excerpt{height:6em}}.card__action{border-top:1px solid #dfdfdf;padding:.625em 0;background-color:#fff}.card__overimage{background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.4));background-image:linear-gradient(transparent,rgba(0,0,0,.4));height:13.75em;z-index:initial;width:inherit}@media screen and (min-width:62em){.card__overimage{height:15.875em}}.card__image{left:0;right:0;top:0;bottom:0;width:100%;z-index:-1;height:auto;image-rendering:-moz-crisp-edges}.card__title{position:absolute;bottom:0;left:0;padding:1.25em 1.25em .625em;color:#fff;margin:0;font-weight:400;z-index:2}@font-face{font-family:fontello;src:url(../font/fontello.eot?81139378);src:url(../font/fontello.eot?81139378#iefix) format("embedded-opentype"),url(../font/fontello.woff2?81139378) format("woff2"),url(../font/fontello.woff?81139378) format("woff"),url(../font/fontello.ttf?81139378) format("truetype"),url(../font/fontello.svg?81139378#fontello) format("svg");font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.flag,.flag-body,.tabsMenu{width:100%}.loginbox__title,.modal__title,.ultron__state{text-transform:uppercase}.icon-plus:before{content:'\e800'}.icon-lastfm:before{content:'\e801'}.icon-facebook-squared:before{content:'\e802'}.icon-crown:before{content:'\e803'}.icon-briefcase:before{content:'\e804'}.icon-right-open-big:before{content:'\e805'}.icon-left-open-big:before{content:'\e806'}.icon-heart:before{content:'\e807'}.icon-archive:before{content:'\e808'}.icon-user-add:before{content:'\e809'}.icon-close:before{content:'\e80a'}.icon-mail:before{content:'\e80b'}.icon-info:before{content:'\e80c'}.icon-flag:before{content:'\e80d'}.icon-attention:before{content:'\e80e'}.icon-help:before{content:'\e80f'}.icon-cancel:before{content:'\e810'}.icon-link:before{content:'\e811'}.icon-down-open-big:before{content:'\e812'}.icon-down-open-mini:before{content:'\e813'}.icon-check:before{content:'\e814'}.icon-instagram:before{content:'\e815'}.icon-twitter:before{content:'\e816'}.icon-github:before{content:'\e817'}.icon-minus:before{content:'\e818'}.icon-dot-3:before{content:'\e819'}.note{position:relative;color:#fff;background-color:#6c4892}.note-secondary{background-color:#34495e}.note-success{background-color:#27ae60}.note-warning{background-color:#f39c12}.note-error{background-color:#e74c3c}.note-info{background-color:#3498db}.note-close,.note-icon{background-color:rgba(0,0,0,.25);text-align:center}.note-icon,.note-text{padding:24px}.note-icon{min-width:80px;font-size:2rem;padding:0}.tabsMenu__item,.tooltip{min-width:100px;border:1px solid #dfdfdf}.note-text{padding-right:48px}.note-close{position:absolute;top:12px;right:12px;line-height:30px;font-size:24px;color:#fff;opacity:0;-webkit-transition:all .25s;transition:all .25s}.swipe,.tabsMenu__item--current{position:relative}.tabsMenu,.tabsMenu__item{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.note-close:hover{background-color:rgba(0,0,0,.15);color:#fff}.note:hover .note-close{opacity:1}.flag{display:table}.flag-body,.flag-image{display:table-cell;vertical-align:middle}.flag--top .flag-body,.flag--top .flag-image{vertical-align:top}.flag-bottom .flag-body,.flag-bottom .flag-image{vertical-align:bottom}.flag-image>img{display:block;max-width:none}.flag-rev .flag-image{padding-right:0;padding-left:24px}.tabsMenu{margin:10px 0;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;list-style:none;padding-left:0;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.gh,.tabsMenu__item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.tabsMenu__item{display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;float:left;border-right:0;background-color:#fff;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.tabsMenu__item--current,.tabsMenu__item:hover{background-color:#ececec}.swipe__nav,.tooltip{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.tabsMenu__item:first-of-type{border-top-left-radius:3px;border-bottom-left-radius:3px}.tabsMenu__item:last-of-type{border-top-right-radius:3px;border-bottom-right-radius:3px;border-right:1px solid #dfdfdf}.tab__content{display:none}.tab__content--visible{display:block}.tab__content--hidden{display:none}.swipe{margin:20px -30px;width:inherit;height:400px;background-color:#efeff0}@media screen and (min-width:75em){.swipe{height:500px}}@media screen and (min-width:62em) and (max-width:74.99em){.swipe{height:400px}}@media screen and (min-width:48em) and (max-width:61.99em){.swipe{height:400px}.swipe-wrap>div img.slide{height:auto;max-width:100%}}.swipe__nav{position:absolute;padding:20px;font-size:2.5em;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);color:#D2D2D2;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.swipe__nav:hover{color:#9f9f9f}@media screen and (max-width:47.99em){.swipe{width:calc(100% + 60px);margin-left:-30px;height:auto}.swipe__nav{font-size:2.5em}}.swipe__prev{left:0}.swipe__next{right:0}.swipe-wrap{position:relative}.swipe-wrap>div{float:left;width:100%;position:relative;text-align:center}.swipe-wrap>div img.slide{width:100%;max-height:400px}@media screen and (min-width:75em){.swipe-wrap>div img.slide{width:100%;height:auto;max-height:none}}@media screen and (min-width:62em) and (max-width:74.99em){.swipe-wrap>div img.slide{height:auto;width:1000px;max-height:none}}.spinner{border:3px solid #efeff0;border-right-color:transparent;border-radius:50%;height:15px;margin:0 auto;position:relative;width:15px;-webkit-animation:spinner 1s linear 0s infinite;animation:spinner 1s linear 0s infinite}.tooltip,.tooltip:before{position:absolute;background-color:#fff}@-webkit-keyframes spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.tooltip{cursor:default;left:50%;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0);color:#333;min-height:30px;padding:8px;border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;display:block;visibility:hidden;opacity:0;z-index:4;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.gh,.lf{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.tooltip:before{content:"";width:5px;height:5px;border:1px solid #dfdfdf;top:-2px;left:calc(50% - 1px);-webkit-transform:rotate(45deg) translateX(-50%);-ms-transform:rotate(45deg) translateX(-50%);transform:rotate(45deg) translateX(-50%);border-right:0;border-bottom:0}.lf,.map,.map__container{position:relative}.modal__topbar,.ultron__state{border-bottom:1px solid #dfdfdf}.tooltip--active{visibility:visible;opacity:1;-webkit-transform:translate3d(-50%,10px,0);transform:translate3d(-50%,10px,0)}.gh{display:flex;white-space:nowrap;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;height:45px;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.gh__name,.lf{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.gh__name{margin:0;font-weight:400;font-size:1.2rem;line-height:1;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline}.gh__avatar,.lf__cover{margin-right:8px;border-radius:3px;background-clip:padding-box}.gh__avatar{height:24px;width:24px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.lf{display:flex;min-height:40px;width:150px;transition:all .2s cubic-bezier(.455,.03,.515,.955);line-height:1.1}.lf__trackInfo,.modal__container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.map__zoomIn,.map__zoomOut,.modal{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.lf__cover{height:36px;width:36px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.map__zoomIn,.map__zoomOut,.tagWrapper{border-radius:3px;background-clip:padding-box}.lf__song{width:100%}.lf__artist{font-size:.9rem;width:100%}.lf__trackInfo{display:flex;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.tagWrapper{padding:5px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;display:inline-block}.tagSize-1{font-size:1rem}.tagSize-5{font-size:2rem}.map__container{width:100%;height:25rem;background-color:#D2D2D2}.modal,.modal__overlay{position:fixed;top:0;bottom:0;left:0;right:0}.map__zoomIn,.map__zoomOut{transition:all .2s cubic-bezier(.455,.03,.515,.955);height:50px;width:50px;cursor:pointer;margin:20px 30px 5px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;font-size:2.24rem;text-align:center}.map__zoomOut{margin-top:0}.modal{visibility:hidden;opacity:0;z-index:3;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.modal__overlay{background-color:rgba(239,239,240,.6);z-index:0}.modal__body{position:relative;max-width:600px;margin:0 auto;top:25%;-webkit-transform:translateY(-25%);-ms-transform:translateY(-25%);transform:translateY(-25%)}.modal__topbar{position:relative;text-align:center;overflow:hidden;padding:.8rem}.modal__title{text-align:center;color:#4d4d4d;margin:0}.modal__close{position:absolute;right:5px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:1.6rem;color:#4d4d4d;cursor:pointer;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.error404::after,.error404__topbar::after{top:0;left:0;bottom:0;right:0;content:""}.modal__close:hover{color:#e74c3c}.modal__container{position:relative;padding:20px;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.modal__image{height:auto;max-width:200px;position:relative;margin-right:20px}.modal__content{width:360px}.error404{position:absolute;height:100vh;width:100vw;background:center center no-repeat fixed #000;background-size:cover}.project,.project__header{background-clip:padding-box}.loginbox__title,.page-template-login{background-position:center;background-repeat:no-repeat}.error404::after{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFUlEQVQIHWNgYGB4/P//fwZGEAECAEVMBt9tNvSUAAAAAElFTkSuQmCC);position:absolute;z-index:-2}.error404__topbar{position:relative;font-size:2rem;padding:10px 20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.error404__topbar::after{width:100%;height:30vh;background-image:-webkit-linear-gradient(#6c4892 10%,transparent 100%);background-image:linear-gradient(#6c4892 10%,transparent 100%);position:absolute;z-index:-1}.error404__back{margin-right:5px}.error404__logo{height:30px;width:auto}.error404__404{margin-left:5px;color:#fff}.error404__powered{position:fixed;bottom:5px;right:5px}.project{border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;margin:.625em;border:1px solid #dfdfdf}.project__header{width:100%;height:auto;position:relative;border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;-ms-border-radius:3px 3px 0 0;-o-border-radius:3px 3px 0 0;z-index:3}@media screen and (min-width:62em){.project__header{height:25em}}.project__meta{color:#fff;padding:0 30px;font-weight:400}@media screen and (min-width:48em){.project__meta{padding:0 53px}}.project__status{float:left;width:100%}.project__time{float:left;padding-right:10px}.project__links{position:relative;display:inline;padding:0 5px;border-left:1px solid rgba(255,255,255,.2)}.project__overimage{background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.4));background-image:linear-gradient(transparent,rgba(0,0,0,.4));width:100%;height:inherit}.about__featuredimg,.project__featuredimg{height:auto;min-width:100%;left:50%;position:relative;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:100%;top:-25%;z-index:-1}.project__title{margin:0;font-weight:400;color:#fff;font-size:1.5em;padding:0 1.25em .625em}@media screen and (min-width:48em){.project__title{font-size:2.5em}}.about__content,.project__content{background-color:#fff;padding:0 30px 30px;font-size:1.125em;zoom:1}.about__content:after,.about__content:before,.project__content:after,.project__content:before{content:"";display:table}.about__content img,.project__content img{max-width:100%;height:auto}.about__content figure,.project__content figure{text-align:center;background-color:#f8f8f8;margin:0 -30px}.about__content figcaption,.project__content figcaption{font-style:oblique;background-color:#fff;text-align:center;padding:0 30px}.video-container{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;margin:0 -30px}.video-container embed,.video-container iframe,.video-container object{position:absolute;top:0;left:0;width:100%;height:100%}.entry-content embed,.entry-content iframe,.entry-content img,.entry-content object{max-width:100%}.page-template-login{height:100%;position:fixed;display:block;width:100%;background-image:url(../img/login_bg.jpg);background-attachment:fixed;background-size:cover}.loginbox{width:300px;left:50%;position:fixed;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.loginbox__title{background-color:#333;border-radius:5px 5px 0 0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxIHIxMzcyNSIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgd2lkdGg9IjMxMS4zMDA5OSIKICAgaGVpZ2h0PSI1MCIKICAgdmlld0JveD0iMCAwIDMxMS4zMDA5OSA1MCIKICAgc29kaXBvZGk6ZG9jbmFtZT0ic3luZXJnaWEtbW9uby1ob3Jpem9udGFsLWludmVydGVkLnN2ZyI+PG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOCI+PHJkZjpSREY+PGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz48ZGM6dGl0bGU+PC9kYzp0aXRsZT48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGRlZnMKICAgICBpZD0iZGVmczYiPjxsaW5lYXJHcmFkaWVudAogICAgICAgeDE9IjAuMzAwMDAwMDEiCiAgICAgICB5MT0iMCIKICAgICAgIHgyPSIwLjY5OTk5OTk5IgogICAgICAgeTI9IjAiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTQuNjQ0NjQsNjMuNDYwMTIsLTU1LjU2NzI3LDEyLjgyMzIyLDMyMS43OTgzLDI3Ny4wMzkzKSIKICAgICAgIHNwcmVhZE1ldGhvZD0icGFkIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDQiPjxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLW9wYWNpdHk6MTtzdG9wLWNvbG9yOiMyZjE2MzYiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0NiIgLz48c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1vcGFjaXR5OjE7c3RvcC1jb2xvcjojNmM0MmE0IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDgiIC8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQKICAgICAgIHgxPSIwLjMwMDAwMDAxIgogICAgICAgeTE9IjAiCiAgICAgICB4Mj0iMC42OTk5OTk5OSIKICAgICAgIHkyPSIwIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xNC42NDQ2NCwtNjMuNDYwMTIsNTUuNTY3MjcsLTEyLjgyMzIyLDI4MS4wNDgsMzQwLjkxMzUpIgogICAgICAgc3ByZWFkTWV0aG9kPSJwYWQiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2MiI+PHN0b3AKICAgICAgICAgc3R5bGU9InN0b3Atb3BhY2l0eToxO3N0b3AtY29sb3I6IzJmMTYzNiIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDY0IiAvPjxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLW9wYWNpdHk6MTtzdG9wLWNvbG9yOiM2YzQyYTQiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A2NiIgLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjEzNjYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNzE3IgogICAgIGlkPSJuYW1lZHZpZXc0IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTpzbmFwLWNlbnRlcj0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgc2hvd2d1aWRlcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpndWlkZS1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtbm9kZXM9ImZhbHNlIgogICAgIGlua3NjYXBlOnNuYXAtcGFnZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWJib3g9ImZhbHNlIgogICAgIGlua3NjYXBlOmJib3gtcGF0aHM9InRydWUiCiAgICAgaW5rc2NhcGU6YmJveC1ub2Rlcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWJib3gtZWRnZS1taWRwb2ludHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1iYm94LW1pZHBvaW50cz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWdsb2JhbD0idHJ1ZSIKICAgICBpbmtzY2FwZTp6b29tPSIwLjcwNzEwNjc4IgogICAgIGlua3NjYXBlOmN4PSIzOTEuNTUwMzUiCiAgICAgaW5rc2NhcGU6Y3k9IjIyNC43MDQzIgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9Imc0Mzc5Ij48c29kaXBvZGk6Z3VpZGUKICAgICAgIHBvc2l0aW9uPSI1MjYuMTgxLDQ4My4xMzA3MSIKICAgICAgIG9yaWVudGF0aW9uPSIxLDAiCiAgICAgICBpZD0iZ3VpZGU0MjIxIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IiIKICAgICAgIGlua3NjYXBlOmNvbG9yPSJyZ2IoMCwwLDI1NSkiIC8+PHNvZGlwb2RpOmd1aWRlCiAgICAgICBwb3NpdGlvbj0iMzY2LjI4MTMxLDM3Mi4wNDciCiAgICAgICBvcmllbnRhdGlvbj0iMCwxIgogICAgICAgaWQ9Imd1aWRlNDIyMyIKICAgICAgIGlua3NjYXBlOmxhYmVsPSIiCiAgICAgICBpbmtzY2FwZTpjb2xvcj0icmdiKDAsMCwyNTUpIiAvPjxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDQyMjUiIC8+PHNvZGlwb2RpOmd1aWRlCiAgICAgICBwb3NpdGlvbj0iMTE1Ljk2NTUxLDI4LjUiCiAgICAgICBvcmllbnRhdGlvbj0iMCwxIgogICAgICAgaWQ9Imd1aWRlNDIyOSIKICAgICAgIGlua3NjYXBlOmxhYmVsPSIiCiAgICAgICBpbmtzY2FwZTpjb2xvcj0icmdiKDAsMCwyNTUpIiAvPjxzb2RpcG9kaTpndWlkZQogICAgICAgcG9zaXRpb249IjEyNC42MDksMzM3Ljk5NzA0IgogICAgICAgb3JpZW50YXRpb249IjEsMCIKICAgICAgIGlkPSJndWlkZTQzNzciCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iIgogICAgICAgaW5rc2NhcGU6Y29sb3I9InJnYigwLDAsMjU1KSIgLz48L3NvZGlwb2RpOm5hbWVkdmlldz48ZwogICAgIGlkPSJnMTAiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpbmtzY2FwZTpsYWJlbD0iTG9nbyIKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1LDAsMCwtMS4yNSwwLDUwLjAwMDAxOCkiPjxnCiAgICAgICBpZD0iZzQzNzkiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4Ljc0MjMwNjcsMCkiPjxnCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuODUzNjY2MDEsMCwwLDAuODUzNjY2MTcsLTguMjE5NDA3MywwLjUzNjQxNDk1KSIKICAgICAgICAgaWQ9Imc0MjMzIj48cGF0aAogICAgICAgICAgIGQ9Im0gMjY4LjQ0MTIyLDExLjQ2MTQxNCA4LjUwNCwwIDAsOS45MjEzIDUuNjY5MywwIDAsLTkuOTIxMyA4LjUwMzksMCAwLDE5Ljg0MjYgYyAwLDEuNTY1MyAtMS4yNjk0LDIuODM0NiAtMi44MzQ2LDIuODM0NiBsIC01LjY2OTMsMCAtNS42NjkzLDAgLTUuNjY5MywwIGMgLTEuNTY1MywwIC0yLjgzNDcsLTEuMjY5MyAtMi44MzQ3LC0yLjgzNDYgbCAwLC0xOS44NDI2IHogbSA4LjUwNCwxMi43NTYgMCw3LjA4NjYgNS42NjkzLDAgMCwtNy4wODY2IC01LjY2OTMsMCB6IgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgaWQ9InBhdGgxNCIKICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPjxwYXRoCiAgICAgICAgICAgZD0ibSA3Mi44NTA3MTcsMjYuODQ4MjE0IDEyLjQxOTEsLTQuNTIwMSBjIDEuMDI5LC0wLjQyNTIgMS43NTQxLC0xLjQzODMgMS43NTQxLC0yLjYyMDcgbCAwLC01LjQxMTMgYyAwLC0xLjU2NTMgLTEuMjY5MywtMi44MzQ3IC0yLjgzNDYsLTIuODM0NyBsIC01LjY2OTMsMCAtMTQuMTczMywwIDAsMi44MzQ3IDE0LjE3MzMsMCAwLDQuNDU1NSAtMTIuNDIxMiw0LjUyMSBjIC0xLjAyNzgsMC40MjU3IC0xLjc1MjEsMS40Mzg1IC0xLjc1MjEsMi42MiBsIDAsNS40MTE0IGMgMCwxLjU2NTMgMS4yNjk0LDIuODM0NiAyLjgzNDcsMi44MzQ2IGwgNS42NjkzLDAgMTQuMTczMiwwIDAsLTIuODM0NiAtMTQuMTczMiwwIDAsLTQuNDU1OCB6IgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgaWQ9InBhdGgxNiIKICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPjxwYXRoCiAgICAgICAgICAgZD0ibSAyMDMuMjQ0NDIsMjEuMzgyNzE0IGMgMCwtMy4zMDY5IDAsLTYuNjE0NCAwLC05LjkyMTMgbCA4LjUwMzksMCBjIDAsMi44MzQ3IDAsNS42Njk2IDAsOC41MDQzIDAsMS41NjUzIC0xLjI2OTMsMi44MzQ2IC0yLjgzNDYsMi44MzQ2IDEuNTU3NiwwIDIuODM0NiwxLjI3NyAyLjgzNDYsMi44MzQ3IDAsMS40MTcgMCw0LjI1MTkgMCw1LjY2OSAwLDEuNTY1MyAtMS4yNjkzLDIuODM0NiAtMi44MzQ2LDIuODM0NiBsIC01LjY2OTMsMCAtNS42NjkzLDAgLTUuNjY5MywwIGMgLTEuNTY1MywwIC0yLjgzNDYsLTEuMjY5MyAtMi44MzQ2LC0yLjgzNDYgbCAwLC0xOS44NDI2IDguNTAzOSwwIGMgMCwzLjMwNjkgMCw2LjYxNDQgMCw5LjkyMTMgbCA1LjY2OTMsMCB6IG0gLTUuNjY5MywyLjgzNDcgNS42NjkzLDAgMCw3LjA4NjYgLTUuNjY5MywwIDAsLTcuMDg2NiB6IgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgaWQ9InBhdGgxOCIKICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPjxwYXRoCiAgICAgICAgICAgZD0ibSAxMjYuNzA5MDIsMTEuNDYxNDE0IDguNTAzOSwwIGMgMCw2LjYxNDEgMCwxMy4yMjg1IDAsMTkuODQyNiBsIDUuNjY5MywwIGMgMCwtNi42MTQxIDAsLTEzLjIyODUgMCwtMTkuODQyNiBsIDguNTAzOSwwIDAsMTkuODQyNiBjIDAsMS41NjUzIC0xLjI2OTMsMi44MzQ2IC0yLjgzNDYsMi44MzQ2IGwgLTUuNjY5MywwIC01LjY2OTMsMCAtNS42NjkzLDAgYyAtMS41NjUzLDAgLTIuODM0NiwtMS4yNjkzIC0yLjgzNDYsLTIuODM0NiBsIDAsLTE5Ljg0MjYgeiIKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgIGlkPSJwYXRoMjAiCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz48cGF0aAogICAgICAgICAgIGQ9Im0gMTYwLjcyNDcyLDExLjQ2MTQxNCAxOS44NDI1LDAgMCwyLjgzNDcgLTE0LjE3MzIsMCAwLDcuMDg2NiA5LjU1NjcsMCAwLDIuODM0NyAtOS41NTY3LDAgMCw3LjA4NjYgMTQuMTczMiwwIDAsMi44MzQ2IC0xOS44NDI1LDAgYyAtMS41NjUzLDAgLTIuODM0NiwtMS4yNjkzIC0yLjgzNDYsLTIuODM0NiBsIDAsLTE3LjAwNzkgYyAwLC0xLjU1NzYgMS4yNzY3LC0yLjgzNDcgMi44MzQ2LC0yLjgzNDciCiAgICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICBpZD0icGF0aDIyIgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+PHBhdGgKICAgICAgICAgICBkPSJtIDI1MS40MzM0MiwxMS40NjE0MTQgOC41MDM5LDAgYyAwLDcuNTU4OSAwLDE1LjExODMgMCwyMi42NzcyIGwgLTUuNjY5MywwIGMgLTEuNTY1MywwIC0yLjgzNDYsLTEuMjY5MyAtMi44MzQ2LC0yLjgzNDYgbCAwLC0xOS44NDI2IHoiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICBpZD0icGF0aDI0IgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+PHBhdGgKICAgICAgICAgICBkPSJtIDIzMS41OTA4MiwyMS4zODI3MTQgMi44MzQ3LDAgYyAwLC0yLjM2MjEgMCwtNC43MjQ1IDAsLTcuMDg2NiBsIC01LjY2OTMsMCBjIDAsNS42NjkgMCwxMS4zMzg5IDAsMTcuMDA3OSA0LjcyNDIsMCA5LjQ0OSwwIDE0LjE3MzIsMCBsIDAsMi44MzQ2IC04LjUwMzksMCAtNS42NjkzLDAgLTUuNjY5MywwIGMgLTEuNTY1MywwIC0yLjgzNDYsLTEuMjY5MyAtMi44MzQ2LC0yLjgzNDYgMCwtNS42NjkzIDAsLTExLjMzODYgMCwtMTcuMDA3OSAwLC0xLjU2NTMgMS4yNjkzLC0yLjgzNDcgMi44MzQ2LC0yLjgzNDcgNS42NjksMCAxMS4zMzg5LDAgMTcuMDA3OSwwIDEuNTY1MywwIDIuODM0NiwxLjI2OTQgMi44MzQ2LDIuODM0NyAwLDIuMzYyMSAwLDQuNzI0NSAwLDcuMDg2NiAwLDEuNTY1MyAtMS4yNjkzLDIuODM0NyAtMi44MzQ2LDIuODM0NyAtMi44MzQ0LDAgLTUuNjY5NiwwIC04LjUwNCwwIGwgMCwtMi44MzQ3IHoiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICBpZD0icGF0aDI2IgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+PHBhdGgKICAgICAgICAgICBkPSJtIDk1LjUyNzgxNywzNC4xMzg2MTQgOC41MDM5OTMsMCBjIDAsLTYuNjE0MSAwLC0zLjMwNzIgMCwtOS45MjEyIGwgNS42NjkzLDAgYyAwLDYuNjE0IDAsMy4zMDcxIDAsOS45MjEyIGwgOC41MDM5MSwwIDAsLTkuOTIxMiBjIDAsLTEuNTY1MyAtMS4yNjkzLC0yLjgzNDcgLTIuODM0NiwtMi44MzQ3IGwgLTQuMjUyMDEsMCAwLC05LjkyMTMgLTguNTAzOSwwIDAsOS45MjEzIC00LjI1MTk5MywwIGMgLTEuNTY1MywwIC0yLjgzNDcsMS4yNjk0IC0yLjgzNDcsMi44MzQ3IGwgMCw5LjkyMTIgeiIKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgIGlkPSJwYXRoMjgiCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz48L2c+PGcKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4zMjM5ODAzNywwLDAsMC4zMjM5ODA0MywtOS41NDQ4NTYsLTE2MS44MzQ1MikiCiAgICAgICAgIGlkPSJnNDIwMyIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiI+PGcKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjc5MzM5MDQsMCwwLDIuNzkzMzkwNCwtNzc3Ljc2ODcyLC0zMDEuODI2MDkpIgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuNDMxOTUxNjQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICBpZD0iZzQyMzctOCI+PGcKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuNDMxOTUxNjQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICAgIGlkPSJnNDIzOS03Ij48ZwogICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjQzMTk1MTY0O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgICAgICAgIGlkPSJnNDI0NS0zIj48cGF0aAogICAgICAgICAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2Nzc2NjY2NjY3NzY2Njc2NjYyIKICAgICAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgICAgIGlkPSJwYXRoNDI1My02IgogICAgICAgICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMjg2MzkwMzMsMCwwLC0wLjI4NjM5MDMzLDI2MS44MzMxMiw0MTQuMTYwMjIpIgogICAgICAgICAgICAgICAgIGQ9Im0gMTQwLjI0MDIzLDI5MC4xMjY5NSBjIC0zLjg0NjU2LDAgLTguNTY4MDgsMC4yNjE1OSAtMTIuMjYxNzEsMC44MDQ2OSAzMC43NDM4MSwxMS41NjQ0NiA1My44NDk2LDQxLjYxNjQyIDUzLjg0OTYsNzYuMzc1IDAsMjIuOTQyNzQgLTE4LjY0NDQ0LDQxLjU5Mzc1IC00MS41ODc4OSw0MS41OTM3NSAtMTEuMTMyOTQsMCAtMjAuODc2MjcsLTQuNjcyMzIgLTI4LjE3NzczLC0xMS45Mzc1IC0yLjAxMTA2LC0xLjc3NDU5IC0zLjg0NDU1LC0zLjc0MzQ2IC01LjQ2MDk0LC01Ljg4ODY3IDguMDM2MzgsMjQuNzgwNzMgMjguMDkwNTgsNDQuMDk5ODUgNTMuNDI5NjksNTAuODEyNSAzMS45ODM1LC04LjQ3MjA5IDU1Ljg1MzU3LC0zNi45MjY2NSA1Ny4zMTgzNiwtNzEuMjMyNDIgMS40ZS00LC0wLjAwMyAtMS40ZS00LC0wLjAwNyAwLC0wLjAxIDAuMDExMSwtMC4yNjA5OCAwLjAwNywtMC41MjU0NSAwLjAxNTYsLTAuNzg3MTEgMC4wMjc2LC0wLjg0Nzk3IDAuMDU0NywtMS42OTYwNCAwLjA1NDcsLTIuNTUwNzggMCwtNDIuNjQzMyAtMzQuNTM2MzgsLTc3LjE3OTY5IC03Ny4xNzk2OSwtNzcuMTc5NjkgeiBtIDM3LjUxNzU4LDczLjc5MTAyIGMgMC4wNDY1LDEuMTEzMjggMC4wNzIzLDIuMjMyNzQgMC4wNzIzLDMuMzU3NDIgMCwwLjY4MzE3IC0wLjAxODUsMS4zNjI0MiAtMC4wNTI3LDIuMDM3MTEgMC4wMzQ5LC0wLjY2NDUyIDAuMDU0NywtMS4zMzI1NyAwLjA1NDcsLTIuMDA1ODYgMCwtMS4xMzU1NSAtMC4wMjU3LC0yLjI2NTEyIC0wLjA3NDIsLTMuMzg4NjcgeiIKICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjE0NTU2MTM0O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+PC9nPjwvZz48L2c+PGcKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjc5MzM5MDQsMCwwLDIuNzkzMzkwNCwtNzc3Ljc2ODcyLC0zMDEuODI2MDkpIgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjEuMTQ1NTYxMzQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICBpZD0iZzQyNTUtMSI+PGcKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjEuMTQ1NTYxMzQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICAgIGlkPSJnNDI1Ny01Ij48ZwogICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDoxLjE0NTU2MTM0O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgICAgICAgIGlkPSJnNDI2My0xIj48cGF0aAogICAgICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICAgICAgaWQ9InBhdGg0MjcxLTYiCiAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yODYzOTAzMywwLDAsLTAuMjg2MzkwMzMsMjYxLjgzMzEyLDQxNC4xNjAyMikiCiAgICAgICAgICAgICAgICAgZD0ibSAxMTguNDQzMzYsMjkyLjY5NTMxIGMgLTMzLjAxNzc3Niw4Ljc0NjI3IC01Ny4zODg2NzMsMzguNzg3MjIgLTU3LjM4ODY3Miw3NC41NzgxMyAwLDQyLjY0MzY2IDM0LjU0MDI5Miw3Ny4xODM1OSA3Ny4xODM1OTIsNzcuMTgzNTkgNC4xMzkwNywwIDguMTYyNjcsLTAuNDMxNDcgMTIuMTIzMDUsLTEuMDU4NTkgLTMxLjI1ODM4LC0xMS4yOTcyNSAtNTMuNzE0ODQ2LC00MC45OTc5NyAtNTMuNzE0ODQ2LC03Ni4xMjUgMCwtMjIuOTQyMzkgMTguNjQ4MDM2LC00MS41OTE4IDQxLjU5MTc5NiwtNDEuNTkxOCAxMy44MjE5OSwwIDI1Ljk5ODQ1LDYuODQwNTYgMzMuNTY0NDUsMTcuMjM4MjggLTguMTYwMTEsLTI0LjUxNjggLTI4LjIwNjU0LC00My41NjA5OCAtNTMuMzU5MzcsLTUwLjIyNDYxIHoiCiAgICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MS4xNDU1NjEzNDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPjwvZz48L2c+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPg==);background-size:200px auto;height:65px;width:100%;margin-bottom:-1px;text-align:center}.no-svg .loginbox__title{background-image:url(img/synergia-mono-horizontal-inverted.png)}@media only screen and (-moz-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3 / 2),only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.no-svg .loginbox__title{background-image:url(img/synergia-mono-horizontal-inverted@2x.png)}}.loginbox__fieldset{background:#efeff0;border-radius:0 0 5px 5px;padding:20px;position:relative}.loginbox__fieldset:before{background-color:#efeff0;content:"";height:8px;left:50%;margin:-4px 0 0 -4px;position:absolute;top:0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:8px}.loginbox__input{background-color:#fff;box-sizing:border-box;text-align:center}.loginbox__input--login{border-radius:3px 3px 0 0;border:1px solid #dfdfdf;padding:8px 6px;width:100%}.loginbox__input--password{font:caption;border-radius:0 0 3px 3px;border:1px solid #dfdfdf;border-top:0;padding:8px 6px;width:100%;margin-bottom:15px}.loginbox__input--checkbox{display:none}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeInAsideTitles{0%{opacity:0}100%{opacity:.8}}@keyframes fadeInAsideTitles{0%{opacity:0}100%{opacity:.8}}@-webkit-keyframes bannerAnimation{0%{height:0}100%{height:520px}}@keyframes bannerAnimation{0%{height:0}100%{height:520px}}.blazy{-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out;opacity:0}.blazy.b-error,.blazy.b-loaded,.visible{opacity:1}.brand__logo.blazy.b-loaded{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.card__overimage.loading,.center-cropped.loading{background-image:-webkit-linear-gradient(transparent,#fff);background-image:linear-gradient(transparent,#fff)}.bottom{position:absolute;bottom:0}.left{float:left}.textRight{text-align:right}.noWrap{white-space:nowrap}.visible{visibility:visible}.hidden{opacity:0;visibility:hidden;z-index:0}.noMargins{margin:0}.ultron{position:relative;margin:0 auto;width:400px;text-align:center;background-color:#fff;border:1px solid #dfdfdf;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.ultron__state{font-size:3.5rem;font-weight:300;padding:10px}.ultron__datetime{padding:10px;font-size:1.125rem;color:#4d4d4d}.recruitment__info,.recruitment__links,.recruitment__title{color:#fff;font-family:'PT Mono',monospace;font-size:22px}.recruitment{background-position:center center;background-repeat:no-repeat;background-attachment:fixed;background-size:cover;width:100vw;height:100vh}.recruitment__grad{background:-webkit-linear-gradient(rgba(58,59,129,.87),rgba(126,62,145,.68));background:linear-gradient(rgba(58,59,129,.87),rgba(126,62,145,.68));width:100vw;height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:column;-ms-flex-flow:column;flex-flow:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.recruitment__title{font-weight:400}.recruitment__links{margin-top:20px}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.membercardSmall__avatarWrapper a[href]:after,a.link--name[href]:after,a.link--social[href]:after,a[href].link--tag:after,a[href^="#"]:after,a[href^="http://www.pwr.edu.pl/index.dhtml"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.download-button-container,.footer__social,.topbarWrapper{display:none}.global{padding:0;margin-bottom:0}.project__meta{padding:0 60px}.project__title{font-size:3rem}.footer-wrapper{position:relative}} -/*# sourceMappingURL=main.css.map */ +@charset "UTF-8";article,aside,details,figcaption,figure,footer,header,hgroup,hr,main,menu,nav,section,summary{display:block}pre,textarea{overflow:auto}fieldset,hr,img,legend{border:0}fieldset,hr,legend,td,th{padding:0}body,fieldset,figure{margin:0}.brand:hover .brand__logo,.memberOverlay{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.about__content:after,.compensator:after,.container:after,.project__content:after,.tabsMenu,.topbar:after,blockquote:after{clear:both}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;overflow-x:hidden}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],img:not([src]),template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.btn,audio,canvas,iframe,img,svg,video{vertical-align:middle}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:1px;border-top:1px solid #dfdfdf;margin:1em 0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}.hero__middleTitle,.nav__menu,.orgs__title{text-transform:uppercase}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}.brand,.btn,.dropy__title,.navicon-button,.swipe__nav{cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}::-moz-selection{background:#6c4892;text-shadow:none;color:#fff}::selection{background:#6c4892;text-shadow:none;color:#fff}blockquote{position:relative;z-index:1;margin:20px -30px;padding:0 10%;font-size:2em;font-weight:200;background-color:#D2D2D2;zoom:1}.global,body{background-color:#fcfcfc;position:relative}blockquote:after,blockquote:before{content:"";display:table}body{font-family:"Titillium Web",sans-serif;font-size:16px;line-height:1.4;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;border:none;padding:5px}ol,ul{margin-top:0;margin-bottom:10px}.global{margin-bottom:100vh;min-height:100vh;padding:70px 0 40px;z-index:1}.global:after{background:inherit;content:'';display:block;height:50%;left:0;position:absolute;right:0;z-index:-1;-webkit-backface-visibility:hidden;bottom:0;-webkit-transform:skewY(-1.5deg);-ms-transform:skewY(-1.5deg);transform:skewY(-1.5deg);-webkit-transform-origin:100%;-ms-transform-origin:100%;transform-origin:100%;box-shadow:0 2px 3px 0 rgba(0,0,0,.1)}.compensator:after,.compensator:before,.container:after,.container:before{display:table;content:""}@media screen and (min-width:48em){.global{margin-bottom:90vh;padding-top:91px}}.global--full{margin-bottom:0;height:100vh}.global--frontpage{padding-top:40px}.compensator{zoom:1}@media screen and (min-width:48em){.compensator{margin:-10px -10px 0}.container{width:750px}}.container{margin-right:auto;margin-left:auto;zoom:1}@media screen and (min-width:62em){.container{width:900px}}@media screen and (min-width:75em){.container{width:1000px}}.container--full{width:100%}.cardsWrapper,.counters{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:relative}@media screen and (min-width:75em){.cardsWrapper,.counters{-webkit-align-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}}.memberInfo{position:relative;border:1px solid #dfdfdf;border-right:0;border-left:0;z-index:1;overflow:hidden;margin:0 0 10px;-webkit-animation:fadeIn .5s cubic-bezier(.455,.03,.515,.955) forwards;animation:fadeIn .5s cubic-bezier(.455,.03,.515,.955) forwards}.memberInfo__nameWrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.memberInfo__desc,.memberInfo__status{display:inline-block;font-size:1.03rem;text-align:center}@media screen and (min-width:48em){.memberInfo{border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-right:1px solid #dfdfdf;border-left:1px solid #dfdfdf;margin:0 10px 10px}.memberInfo__nameWrapper{position:absolute;bottom:0;left:180px;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-flex-flow:row;-ms-flex-flow:row;flex-flow:row}.memberInfo__desc,.memberInfo__status{margin-left:175px;text-align:left}}.brand,.emptyState,.nav__menu,.orgs__title,.topbar__appname{text-align:center}.memberInfo__desc{margin-left:20px;position:relative}.memberInfo__desc:before{content:"";position:absolute;left:-12px;top:10px;width:4px;height:4px;background:#333;border-radius:2px;-o-object-fit:cover;object-fit:cover}.memberInfo__social{margin:5px 10px}.memberInfo__avatar{height:128px;width:128px;display:inline-block;border:5px solid #fff;border-radius:100%;background-color:#fff}.modal__body,.orgs,.orgs__title{border-bottom:1px solid #dfdfdf}@media screen and (min-width:48em){.memberInfo__avatar{margin-top:30px}}.memberInfo__name{font-size:2.5em;line-height:1.3;font-weight:300;margin:0;color:#fff}.violetWrapper{background:-webkit-linear-gradient(240deg,#b226f9,#6c42a4,#5566e2);background:linear-gradient(210deg,#b226f9,#6c42a4,#5566e2);background-size:100% 400%;padding:20px;z-index:1;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}@media screen and (min-width:48em){.violetWrapper{height:80px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row;-ms-flex-flow:row;flex-flow:row;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}}.brand__controls,.whiteWrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.whiteWrapper{background-color:#fff;width:100%;padding:5px;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.usercard{margin-top:20px}.emptyState{font-size:3em;color:#D2D2D2;font-weight:600}.memberOverlay{padding-top:90px;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#fcfcfc;z-index:3;visibility:hidden;opacity:0;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.brand:hover .brand__controls,.memberOverlay--visible{opacity:1;visibility:visible}.memberOverlay--visible{overflow-y:auto}.about__header,.blogcard,.hero,.membercard,.membercard__avatar,.membercard__info,.nav__menu,.orgs__title{overflow:hidden}.modal__body,.orgs{margin-top:20px;position:relative;width:100%;border-top:1px solid #dfdfdf;background-color:#fff}@media screen and (min-width:48em){.whiteWrapper{height:80px;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.modal__body,.orgs{border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-left:1px solid #dfdfdf;border-right:1px solid #dfdfdf}}.modal__body:first-of-type,.orgs:first-of-type{margin-top:10px}.orgs__title{color:#4d4d4d;padding:.8rem;margin:0}.brand{position:relative;width:180px;height:90px;margin:10px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.brand:hover .brand__logo{opacity:.6;-webkit-filter:grayscale(1);filter:grayscale(1);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.brand__controls,.brand__link,.brand__more{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.brand__controls{width:100%;height:100%;opacity:0;visibility:hidden;position:absolute;z-index:2;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:rgba(255,255,255,.5);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.about,.counters__counter{background-color:#fff;box-sizing:border-box}.brand__link,.brand__more{opacity:.95;font-size:1.8rem;border:3px solid #333;border-radius:50%;background-clip:padding-box;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;margin:10px;padding:.2rem;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.brand__link:hover,.brand__more:hover{border:3px solid #533770}.brand__logo{position:relative;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);opacity:1;-webkit-filter:grayscale(.4);filter:grayscale(.4);width:auto;max-height:90px;max-width:170px;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955);image-rendering:-moz-optimizeSpeed}.about{border:1px solid #dfdfdf;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;margin-top:50%}@media screen and (min-width:48em){.about{margin-top:400px}}.about__header{height:auto;max-height:500px;width:100%;position:absolute;right:0;left:0;top:0}.about__overimage{content:'';width:100%;height:auto}.about__overimage::after{content:"";background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFUlEQVQIHWNgYGB4/P//fwZGEAECAEVMBt9tNvSUAAAAAElFTkSuQmCC);opacity:.5;top:0;left:0;bottom:0;right:0;position:absolute;z-index:-1}.counters{z-index:3;border-bottom:1px solid #dfdfdf}@media screen and (min-width:75em){.counters{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border:none;margin-top:-50px}}@media screen and (max-width:47.99em){.counters{-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap}}.counters__counter{width:25%;min-width:150px;font-size:4rem;line-height:1;font-weight:300;color:#333;text-align:center;height:170px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;position:relative;padding-top:25px}.hero,.tabsMenu{-webkit-box-pack:center}@media screen and (min-width:75em){.counters__counter{margin:10px;width:219.5px;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border:1px solid #dfdfdf}}.counters__label{font-size:1.1rem;font-weight:400;width:150px;margin:0 auto}.counters__count{position:relative}.nav,.topbarWrapper,.topbar__appname,.topbar__trigger{position:absolute;top:0}.counters__count:after{content:'';display:block;background:#4d4d4d;height:4px;max-width:150px;width:50%;margin:10px auto}.topbarWrapper{left:0;right:0;z-index:4;background-color:#fff;border-bottom:1px solid #dfdfdf;-webkit-transition:background-color .2s cubic-bezier(.455,.03,.515,.955),border-bottom .2s cubic-bezier(.455,.03,.515,.955);transition:background-color .2s cubic-bezier(.455,.03,.515,.955),border-bottom .2s cubic-bezier(.455,.03,.515,.955)}.footer__pwr,.topbar__logo{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}@media screen and (min-width:48em){.topbarWrapper{border-bottom:1px solid transparent;background-color:#fcfcfc}}.topbarWrapper--hidden{background-color:#fff;border-bottom:1px solid #dfdfdf}@media screen and (min-width:48em){.topbarWrapper--hidden{border-bottom:0}}.topbarWrapper--visible{background-color:#fff;border-bottom:1px solid #dfdfdf}.topbar{padding:10px;height:50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;zoom:1}.topbar:after,.topbar:before{content:"";display:table}.topbar__logo{transition:all .2s cubic-bezier(.455,.03,.515,.955);background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHZpZXdCb3g9IjAgMCAzMDAgNTAiCiAgIGhlaWdodD0iNTAiCiAgIHdpZHRoPSIzMDAiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzIiPjxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTgiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PGRjOnRpdGxlPjwvZGM6dGl0bGU+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxkZWZzCiAgICAgaWQ9ImRlZnM2Ij48bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ0IgogICAgICAgc3ByZWFkTWV0aG9kPSJwYWQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDE0LjY0NDY0LDYzLjQ2MDEyLC01NS41NjcyNywxMi44MjMyMiwzMjEuNzk4MywyNzcuMDM5MykiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHkyPSIwIgogICAgICAgeDI9IjAuNjk5OTk5OTkiCiAgICAgICB5MT0iMCIKICAgICAgIHgxPSIwLjMwMDAwMDAxIj48c3RvcAogICAgICAgICBpZD0ic3RvcDQ2IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLW9wYWNpdHk6MTtzdG9wLWNvbG9yOiMyZjE2MzYiIC8+PHN0b3AKICAgICAgICAgaWQ9InN0b3A0OCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1vcGFjaXR5OjE7c3RvcC1jb2xvcjojNmM0MmE0IiAvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2MiIKICAgICAgIHNwcmVhZE1ldGhvZD0icGFkIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMTQuNjQ0NjQsLTYzLjQ2MDEyLDU1LjU2NzI3LC0xMi44MjMyMiwyODEuMDQ4LDM0MC45MTM1KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeTI9IjAiCiAgICAgICB4Mj0iMC42OTk5OTk5OSIKICAgICAgIHkxPSIwIgogICAgICAgeDE9IjAuMzAwMDAwMDEiPjxzdG9wCiAgICAgICAgIGlkPSJzdG9wNjQiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3Atb3BhY2l0eToxO3N0b3AtY29sb3I6IzJmMTYzNiIgLz48c3RvcAogICAgICAgICBpZD0ic3RvcDY2IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLW9wYWNpdHk6MTtzdG9wLWNvbG9yOiM2YzQyYTQiIC8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSIwIgogICAgICAgeDI9IjAuNjk5OTk5OTkiCiAgICAgICB5MT0iMCIKICAgICAgIHgxPSIwLjMwMDAwMDAxIgogICAgICAgc3ByZWFkTWV0aG9kPSJwYWQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDE0LjY0NDY0LDYzLjQ2MDEyLC01NS41NjcyNywxMi44MjMyMiwzMjEuNzk4MywyNzcuMDM5MykiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQyMTQiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NCIgLz48bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSIwIgogICAgICAgeDI9IjAuNjk5OTk5OTkiCiAgICAgICB5MT0iMCIKICAgICAgIHgxPSIwLjMwMDAwMDAxIgogICAgICAgc3ByZWFkTWV0aG9kPSJwYWQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xNC42NDQ2NCwtNjMuNDYwMTIsNTUuNTY3MjcsLTEyLjgyMzIyLDI4MS4wNDgsMzQwLjkxMzUpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MjE2IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjIiIC8+PGxpbmVhckdyYWRpZW50CiAgICAgICB5Mj0iMCIKICAgICAgIHgyPSIwLjY5OTk5OTk5IgogICAgICAgeTE9IjAiCiAgICAgICB4MT0iMC4zMDAwMDAwMSIKICAgICAgIHNwcmVhZE1ldGhvZD0icGFkIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxNC42NDQ2NCw2My40NjAxMiwtNTUuNTY3MjcsMTIuODIzMjIsMzIxLjc5ODMsMjc3LjAzOTMpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MjI4IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDQiIC8+PGxpbmVhckdyYWRpZW50CiAgICAgICB5Mj0iMCIKICAgICAgIHgyPSIwLjY5OTk5OTk5IgogICAgICAgeTE9IjAiCiAgICAgICB4MT0iMC4zMDAwMDAwMSIKICAgICAgIHNwcmVhZE1ldGhvZD0icGFkIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMTQuNjQ0NjQsLTYzLjQ2MDEyLDU1LjU2NzI3LC0xMi44MjMyMiwyODEuMDQ4LDM0MC45MTM1KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDIzMCIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDYyIiAvPjwvZGVmcz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNTAuMDAwMDE4KSIKICAgICBpZD0iZzEwIj48ZwogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOC43NDIzMDY3LDApIgogICAgICAgaWQ9Imc0Mzc5Ij48ZwogICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjMxMTc3MjQ1LDAsMCwwLjMxMTc3MjQ1LC0xNy4yNTI5NTQsLTcyLjc5Nzg4NikiCiAgICAgICAgIGlkPSJnNDE5OCI+PGcKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjc3ODU0NTYsLTAuNDM2OTc0MDgsMC40MzY5Nzk4NiwyLjc3ODU4MjQsLTkwNy40ODkyNSwtNzIzLjQ0NjMyKSIKICAgICAgICAgICBpZD0iZzQyMTEtMSI+PGcKICAgICAgICAgICAgIGlkPSJnMzQtNiIKICAgICAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjEwNzI0NjksMTA0Ljc5NjE2KSI+PGcKICAgICAgICAgICAgICAgaWQ9ImczNi01Ij48ZwogICAgICAgICAgICAgICAgIGlkPSJnNDItOCI+PHBhdGgKICAgICAgICAgICAgICAgICAgIGQ9Im0gMzAxLjQyMzIsMzMxLjY1MzUgYyAxMi41MjIzLDAgMjIuNjc3NCwtMTAuMTU1MSAyMi42Nzc0LC0yMi42Nzc0IDAsLTEwLjU2NDcgLTcuMjI4MywtMTkuNDQ0NSAtMTcuMDA4MSwtMjEuOTYyNiBsIDAsMCBjIC05Ljc3OTgsMi41MTgzIC0xNy4wMDc5LDExLjM5NzkgLTE3LjAwNzksMjEuOTYyNiAwLC02LjI2MTIgNS4wNzc0LC0xMS4zMzg2IDExLjMzODYsLTExLjMzODYgNi4yNjExLDAgMTEuMzM4Niw1LjA3NzcgMTEuMzM4NiwxMS4zMzg2IDAsMTAuNTY1IC03LjIyODEsMTkuNDQ0NSAtMTcuMDA3OSwyMS45NjI1IDEuODExOSwwLjQ2NjYgMy43MTE3LDAuNzE0OSA1LjY2OTMsMC43MTQ5IgogICAgICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDQyMTQpO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgICAgICAgICAgaWQ9InBhdGg1MC02IiAvPjwvZz48L2c+PC9nPjxnCiAgICAgICAgICAgICBpZD0iZzUyLTYiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNy4xMDcyNDY5LDEwNC43OTYxNikiPjxnCiAgICAgICAgICAgICAgIGlkPSJnNTQtNSI+PGcKICAgICAgICAgICAgICAgICBpZD0iZzYwLTgiPjxwYXRoCiAgICAgICAgICAgICAgICAgICBkPSJtIDMwMS40MjMyLDI4Ni4yOTkyIGMgLTEyLjUyMjMsMCAtMjIuNjc3NSwxMC4xNTUxIC0yMi42Nzc1LDIyLjY3NzUgMCwxMC41NjQ3IDcuMjI4NCwxOS40NDQ1IDE3LjAwODIsMjEuOTYyNSBsIDAsMCBjIDkuNzc5OCwtMi41MTgzIDE3LjAwNzksLTExLjM5NzggMTcuMDA3OSwtMjEuOTYyNSAwLDYuMjYxMSAtNS4wNzc1LDExLjMzODUgLTExLjMzODYsMTEuMzM4NSAtNi4yNjEyLDAgLTExLjMzODYsLTUuMDc3NyAtMTEuMzM4NiwtMTEuMzM4NSAwLC0xMC41NjUgNy4yMjgxLC0xOS40NDQ2IDE3LjAwNzksLTIxLjk2MjYgLTEuODExOSwtMC40NjY2IC0zLjcxMTcsLTAuNzE0OSAtNS42NjkzLC0wLjcxNDkiCiAgICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDIxNik7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgICAgICBpZD0icGF0aDY4LTciIC8+PC9nPjwvZz48L2c+PC9nPjxnCiAgICAgICAgICAgaWQ9Imc0MTc0Ij48ZwogICAgICAgICAgICAgaWQ9Imc0MjExIgogICAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMi44MTI2OTY2LDAsMCwyLjgxMjczMzgsLTczNi43MjEzOSwtODY2LjE5NDMxKSI+PGcKICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTcuMTA3MjQ2OSwxMDQuNzk2MTYpIgogICAgICAgICAgICAgICBpZD0iZzM0Ij48ZwogICAgICAgICAgICAgICAgIGlkPSJnMzYiPjxnCiAgICAgICAgICAgICAgICAgICBpZD0iZzQyIj48cGF0aAogICAgICAgICAgICAgICAgICAgICBpZD0icGF0aDUwIgogICAgICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDIyOCk7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgICAgICAgIGQ9Im0gMzAxLjQyMzIsMzMxLjY1MzUgYyAxMi41MjIzLDAgMjIuNjc3NCwtMTAuMTU1MSAyMi42Nzc0LC0yMi42Nzc0IDAsLTEwLjU2NDcgLTcuMjI4MywtMTkuNDQ0NSAtMTcuMDA4MSwtMjEuOTYyNiBsIDAsMCBjIC05Ljc3OTgsMi41MTgzIC0xNy4wMDc5LDExLjM5NzkgLTE3LjAwNzksMjEuOTYyNiAwLC02LjI2MTIgNS4wNzc0LC0xMS4zMzg2IDExLjMzODYsLTExLjMzODYgNi4yNjExLDAgMTEuMzM4Niw1LjA3NzcgMTEuMzM4NiwxMS4zMzg2IDAsMTAuNTY1IC03LjIyODEsMTkuNDQ0NSAtMTcuMDA3OSwyMS45NjI1IDEuODExOSwwLjQ2NjYgMy43MTE3LDAuNzE0OSA1LjY2OTMsMC43MTQ5IiAvPjwvZz48L2c+PC9nPjxnCiAgICAgICAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjEwNzI0NjksMTA0Ljc5NjE2KSIKICAgICAgICAgICAgICAgaWQ9Imc1MiI+PGcKICAgICAgICAgICAgICAgICBpZD0iZzU0Ij48ZwogICAgICAgICAgICAgICAgICAgaWQ9Imc2MCI+PHBhdGgKICAgICAgICAgICAgICAgICAgICAgaWQ9InBhdGg2OCIKICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDQyMzApO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgICAgICAgICAgICBkPSJtIDMwMS40MjMyLDI4Ni4yOTkyIGMgLTEyLjUyMjMsMCAtMjIuNjc3NSwxMC4xNTUxIC0yMi42Nzc1LDIyLjY3NzUgMCwxMC41NjQ3IDcuMjI4NCwxOS40NDQ1IDE3LjAwODIsMjEuOTYyNSBsIDAsMCBjIDkuNzc5OCwtMi41MTgzIDE3LjAwNzksLTExLjM5NzggMTcuMDA3OSwtMjEuOTYyNSAwLDYuMjYxMSAtNS4wNzc1LDExLjMzODUgLTExLjMzODYsMTEuMzM4NSAtNi4yNjEyLDAgLTExLjMzODYsLTUuMDc3NyAtMTEuMzM4NiwtMTEuMzM4NSAwLC0xMC41NjUgNy4yMjgxLC0xOS40NDQ2IDE3LjAwNzksLTIxLjk2MjYgLTEuODExOSwtMC40NjY2IC0zLjcxMTcsLTAuNzE0OSAtNS42NjkzLC0wLjcxNDkiIC8+PC9nPjwvZz48L2c+PC9nPjxnCiAgICAgICAgICAgICBpZD0iZzQyMzMiCiAgICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjYzNDkzMTMsMCwwLDIuNjM0OTMxMywyOS42ODIwMiwyMzcuNTYxMTQpIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MSI+PHBhdGgKICAgICAgICAgICAgICAgaWQ9InBhdGgxNCIKICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICAgICAgZD0ibSAyNjguNDQxMjIsMTEuNDYxNDE0IDguNTA0LDAgMCw5LjkyMTMgNS42NjkzLDAgMCwtOS45MjEzIDguNTAzOSwwIDAsMTkuODQyNiBjIDAsMS41NjUzIC0xLjI2OTQsMi44MzQ2IC0yLjgzNDYsMi44MzQ2IGwgLTUuNjY5MywwIC01LjY2OTMsMCAtNS42NjkzLDAgYyAtMS41NjUzLDAgLTIuODM0NywtMS4yNjkzIC0yLjgzNDcsLTIuODM0NiBsIDAsLTE5Ljg0MjYgeiBtIDguNTA0LDEyLjc1NiAwLDcuMDg2NiA1LjY2OTMsMCAwLC03LjA4NjYgLTUuNjY5MywwIHoiIC8+PHBhdGgKICAgICAgICAgICAgICAgaWQ9InBhdGgxNiIKICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICAgICAgZD0ibSA3Mi44NTA3MTcsMjYuODQ4MjE0IDEyLjQxOTEsLTQuNTIwMSBjIDEuMDI5LC0wLjQyNTIgMS43NTQxLC0xLjQzODMgMS43NTQxLC0yLjYyMDcgbCAwLC01LjQxMTMgYyAwLC0xLjU2NTMgLTEuMjY5MywtMi44MzQ3IC0yLjgzNDYsLTIuODM0NyBsIC01LjY2OTMsMCAtMTQuMTczMywwIDAsMi44MzQ3IDE0LjE3MzMsMCAwLDQuNDU1NSAtMTIuNDIxMiw0LjUyMSBjIC0xLjAyNzgsMC40MjU3IC0xLjc1MjEsMS40Mzg1IC0xLjc1MjEsMi42MiBsIDAsNS40MTE0IGMgMCwxLjU2NTMgMS4yNjk0LDIuODM0NiAyLjgzNDcsMi44MzQ2IGwgNS42NjkzLDAgMTQuMTczMiwwIDAsLTIuODM0NiAtMTQuMTczMiwwIDAsLTQuNDU1OCB6IiAvPjxwYXRoCiAgICAgICAgICAgICAgIGlkPSJwYXRoMTgiCiAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgIGQ9Im0gMjAzLjI0NDQyLDIxLjM4MjcxNCBjIDAsLTMuMzA2OSAwLC02LjYxNDQgMCwtOS45MjEzIGwgOC41MDM5LDAgYyAwLDIuODM0NyAwLDUuNjY5NiAwLDguNTA0MyAwLDEuNTY1MyAtMS4yNjkzLDIuODM0NiAtMi44MzQ2LDIuODM0NiAxLjU1NzYsMCAyLjgzNDYsMS4yNzcgMi44MzQ2LDIuODM0NyAwLDEuNDE3IDAsNC4yNTE5IDAsNS42NjkgMCwxLjU2NTMgLTEuMjY5MywyLjgzNDYgLTIuODM0NiwyLjgzNDYgbCAtNS42NjkzLDAgLTUuNjY5MywwIC01LjY2OTMsMCBjIC0xLjU2NTMsMCAtMi44MzQ2LC0xLjI2OTMgLTIuODM0NiwtMi44MzQ2IGwgMCwtMTkuODQyNiA4LjUwMzksMCBjIDAsMy4zMDY5IDAsNi42MTQ0IDAsOS45MjEzIGwgNS42NjkzLDAgeiBtIC01LjY2OTMsMi44MzQ3IDUuNjY5MywwIDAsNy4wODY2IC01LjY2OTMsMCAwLC03LjA4NjYgeiIgLz48cGF0aAogICAgICAgICAgICAgICBpZD0icGF0aDIwIgogICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgICAgICBkPSJtIDEyNi43MDkwMiwxMS40NjE0MTQgOC41MDM5LDAgYyAwLDYuNjE0MSAwLDEzLjIyODUgMCwxOS44NDI2IGwgNS42NjkzLDAgYyAwLC02LjYxNDEgMCwtMTMuMjI4NSAwLC0xOS44NDI2IGwgOC41MDM5LDAgMCwxOS44NDI2IGMgMCwxLjU2NTMgLTEuMjY5MywyLjgzNDYgLTIuODM0NiwyLjgzNDYgbCAtNS42NjkzLDAgLTUuNjY5MywwIC01LjY2OTMsMCBjIC0xLjU2NTMsMCAtMi44MzQ2LC0xLjI2OTMgLTIuODM0NiwtMi44MzQ2IGwgMCwtMTkuODQyNiB6IiAvPjxwYXRoCiAgICAgICAgICAgICAgIGlkPSJwYXRoMjIiCiAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgIGQ9Im0gMTYwLjcyNDcyLDExLjQ2MTQxNCAxOS44NDI1LDAgMCwyLjgzNDcgLTE0LjE3MzIsMCAwLDcuMDg2NiA5LjU1NjcsMCAwLDIuODM0NyAtOS41NTY3LDAgMCw3LjA4NjYgMTQuMTczMiwwIDAsMi44MzQ2IC0xOS44NDI1LDAgYyAtMS41NjUzLDAgLTIuODM0NiwtMS4yNjkzIC0yLjgzNDYsLTIuODM0NiBsIDAsLTE3LjAwNzkgYyAwLC0xLjU1NzYgMS4yNzY3LC0yLjgzNDcgMi44MzQ2LC0yLjgzNDciIC8+PHBhdGgKICAgICAgICAgICAgICAgaWQ9InBhdGgyNCIKICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICAgICAgZD0ibSAyNTEuNDMzNDIsMTEuNDYxNDE0IDguNTAzOSwwIGMgMCw3LjU1ODkgMCwxNS4xMTgzIDAsMjIuNjc3MiBsIC01LjY2OTMsMCBjIC0xLjU2NTMsMCAtMi44MzQ2LC0xLjI2OTMgLTIuODM0NiwtMi44MzQ2IGwgMCwtMTkuODQyNiB6IiAvPjxwYXRoCiAgICAgICAgICAgICAgIGlkPSJwYXRoMjYiCiAgICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgICAgIGQ9Im0gMjMxLjU5MDgyLDIxLjM4MjcxNCAyLjgzNDcsMCBjIDAsLTIuMzYyMSAwLC00LjcyNDUgMCwtNy4wODY2IGwgLTUuNjY5MywwIGMgMCw1LjY2OSAwLDExLjMzODkgMCwxNy4wMDc5IDQuNzI0MiwwIDkuNDQ5LDAgMTQuMTczMiwwIGwgMCwyLjgzNDYgLTguNTAzOSwwIC01LjY2OTMsMCAtNS42NjkzLDAgYyAtMS41NjUzLDAgLTIuODM0NiwtMS4yNjkzIC0yLjgzNDYsLTIuODM0NiAwLC01LjY2OTMgMCwtMTEuMzM4NiAwLC0xNy4wMDc5IDAsLTEuNTY1MyAxLjI2OTMsLTIuODM0NyAyLjgzNDYsLTIuODM0NyA1LjY2OSwwIDExLjMzODksMCAxNy4wMDc5LDAgMS41NjUzLDAgMi44MzQ2LDEuMjY5NCAyLjgzNDYsMi44MzQ3IDAsMi4zNjIxIDAsNC43MjQ1IDAsNy4wODY2IDAsMS41NjUzIC0xLjI2OTMsMi44MzQ3IC0yLjgzNDYsMi44MzQ3IC0yLjgzNDQsMCAtNS42Njk2LDAgLTguNTA0LDAgbCAwLC0yLjgzNDcgeiIgLz48cGF0aAogICAgICAgICAgICAgICBpZD0icGF0aDI4IgogICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgICAgICBkPSJtIDk1LjUyNzgxNywzNC4xMzg2MTQgOC41MDM5OTMsMCBjIDAsLTYuNjE0MSAwLC0zLjMwNzIgMCwtOS45MjEyIGwgNS42NjkzLDAgYyAwLDYuNjE0IDAsMy4zMDcxIDAsOS45MjEyIGwgOC41MDM5MSwwIDAsLTkuOTIxMiBjIDAsLTEuNTY1MyAtMS4yNjkzLC0yLjgzNDcgLTIuODM0NiwtMi44MzQ3IGwgLTQuMjUyMDEsMCAwLC05LjkyMTMgLTguNTAzOSwwIDAsOS45MjEzIC00LjI1MTk5MywwIGMgLTEuNTY1MywwIC0yLjgzNDcsMS4yNjk0IC0yLjgzNDcsMi44MzQ3IGwgMCw5LjkyMTIgeiIgLz48L2c+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPgo=);display:block;width:50px;height:50px;z-index:1}.no-svg .topbar__logo{background-image:url(data:image/png;base64,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)}@media only screen and (-moz-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3 / 2),only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.no-svg .topbar__logo{background-image:url(data:image/png;base64,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)}}@media screen and (min-width:48em){.topbar{background-color:transparent;padding:10px 0;margin:5px auto}.topbar__logo{width:300px;height:50px}}.topbar__logo--circle{height:50px;width:50px}.topbar__appname{pointer-events:none;display:block;width:100%;height:100%;left:0;font-weight:300;font-size:1.5em;line-height:65px;margin:0;z-index:1}@media screen and (min-width:48em){.topbar__appname{display:none}}.topbar__trigger{display:inline-block;float:right;z-index:2;height:70px;right:10px}.nav{bottom:0;left:0;right:0}@media screen and (min-width:48em){.topbar__trigger{display:none}.nav{position:relative;display:inline-block;padding:0;height:50px;margin-left:auto}}.nav__menu{display:none;list-style-type:none;position:relative;left:0;right:0;top:70px;margin:0 -10px;background-color:#fff;padding:0;font-weight:700;border-bottom:1px solid #dfdfdf;box-shadow:0 2px 2px 0 rgba(0,0,0,.05)}@media screen and (min-width:48em){.nav__menu{list-style-type:none;top:0;margin:0;padding:2px 0;display:inline-block;float:right;text-align:inherit;position:relative;background-color:transparent;border-bottom:0;box-shadow:0 0 0 0 transparent}}.hero,.hero__middle{width:100%;position:relative;background-color:#533770}.nav__item{display:block;padding:5px 0;margin:0 5px;position:relative}.nav__item:last-child{padding:15px 0}@media screen and (min-width:48em){.nav__item{display:inline-block;padding:0;margin:0}.nav__item:last-child{padding:5px 0}}.footer,.hero{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.nav__item--current{border:0 solid transparent!important}@media screen and (min-width:48em){.nav__item:first-of-type{border:2px solid #855eaf}}.hero{display:flex;height:100vh;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:height 99999s ease;transition:height 99999s ease}.hero__middle{text-align:center}@media screen and (min-width:62em){.hero__middle{border-left:12px solid #533770;border-right:12px solid #533770;width:800px;position:absolute;height:inherit;margin-left:auto;margin-right:auto;left:0;right:0;z-index:3;-webkit-transform:skewX(-15deg);-ms-transform:skewX(-15deg);transform:skewX(-15deg);overflow:hidden;-webkit-transition:all .6s cubic-bezier(.455,.03,.515,.955);transition:all .6s cubic-bezier(.455,.03,.515,.955)}}.hero__middle--collapsedL{-webkit-transform:translate3d(365px,0,0) skewX(-15deg);transform:translate3d(365px,0,0) skewX(-15deg)}.hero__middle--collapsedR{-webkit-transform:translate3d(-365px,0,0) skewX(-15deg);transform:translate3d(-365px,0,0) skewX(-15deg)}.hero__middleTitle{white-space:nowrap;font-size:4rem;color:#fcfcfc;font-weight:900;letter-spacing:-3px;position:absolute;top:20%;left:0;right:0;margin-left:auto;margin-right:auto;z-index:2}@media screen and (min-width:62em){.hero__middleTitle{-webkit-transform:skewX(15deg);-ms-transform:skewX(15deg);transform:skewX(15deg);font-size:8rem;margin-bottom:0;bottom:0;top:auto;line-height:.6;text-align:left;-webkit-transition:all .4s cubic-bezier(.455,.03,.515,.955);transition:all .4s cubic-bezier(.455,.03,.515,.955)}}@media screen and (min-width:48em) and (max-width:61.99em){.hero__middleTitle{font-size:9rem;top:7%}}.hero__leftTitle,.hero__rightTitle{opacity:0;font-weight:900;letter-spacing:-6px;font-size:8rem;z-index:2;position:absolute;top:auto;margin-bottom:0;line-height:.6;display:inline-block;bottom:0;text-transform:uppercase;white-space:nowrap}.hero__middleTitle--animation{opacity:0;-webkit-animation:1s cubic-bezier(.455,.03,.515,.955) 1s fadeIn forwards;animation:1s cubic-bezier(.455,.03,.515,.955) 1s fadeIn forwards}.hero__middleTitle--opacity0{opacity:0}.hero__leftTitle{text-align:right;color:#fcfcfc;right:325px;-webkit-transform:none;-ms-transform:none;transform:none;-webkit-transition:all .4s cubic-bezier(.455,.03,.515,.955);transition:all .4s cubic-bezier(.455,.03,.515,.955)}.hero__rightTitle{color:#fff;-webkit-transform:none;-ms-transform:none;transform:none;left:160px;text-align:left;-webkit-transition:all .4s cubic-bezier(.455,.03,.515,.955);transition:all .4s cubic-bezier(.455,.03,.515,.955)}.counter,.footer,.membercard__info,.membercard__name,.nojs__info,dl.archive-year h2{text-align:center}.hero__middleImg{-webkit-transition:height 99999s ease;transition:height 99999s ease;-o-object-fit:cover;object-fit:cover;width:auto;margin-left:-25%}@media screen and (min-width:48em){.hero__middleImg{width:100vw;margin-left:0}}.hero__middleImg--opacity60{opacity:.4!important}.hero__left,.hero__right{display:none}@media screen and (min-width:62em){.hero__middleImg{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955);margin-left:-15%;width:100vw;height:auto;-webkit-transform:skewX(15deg);-ms-transform:skewX(15deg);transform:skewX(15deg)}.hero__left,.hero__right{will-change:transform;position:relative;z-index:0;-webkit-transition:all .6s cubic-bezier(.455,.03,.515,.955);transition:all .6s cubic-bezier(.455,.03,.515,.955);display:block;opacity:.9}}.hero__left--mvR,.hero__left:hover .hero__leftTitle,.hero__left:hover .hero__rightTitle,.hero__right:hover .hero__rightTitle{opacity:1}.hero__right--mvL{-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0);opacity:1;z-index:2}.hero__leftImg,.hero__rightImg{width:1280px;height:auto}.hero__left--mvR{-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0);z-index:2}.footer-wrapper{background-color:#6c4892;height:100vh;position:fixed;bottom:0;width:100%;z-index:-1;background:-webkit-linear-gradient(240deg,#5566e2,#b226f9,#6c42a4,#5566e2);background:linear-gradient(210deg,#5566e2,#b226f9,#6c42a4,#5566e2);background-size:600% 600%}@-webkit-keyframes AnimationName{0%,100%{background-position:0 51%}50%{background-position:100% 50%}}@keyframes AnimationName{0%,100%{background-position:0 51%}50%{background-position:100% 50%}}.footer-wrapper--animate{-webkit-animation:AnimationName 30s ease infinite;animation:AnimationName 30s ease infinite}.footer{color:#fff;display:flex;height:inherit;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;margin:0 auto}.counter,.nojs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;-webkit-box-orient:vertical;-webkit-box-direction:normal}@media screen and (min-width:62em){.footer{width:1000px}}.footer__pwr{height:200px;margin:40px;width:auto;fill:#fff;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.membercard,.membercard__name--tooLong:hover>.link{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.footer__mknm{margin:5px 10px 50px}.footer__others{margin:10px 10px 5px;font-size:.75em}.footer__social{margin:20px;font-size:2em}.nojs{position:fixed;height:100vh;width:100vw;background-color:#fcfcfc;z-index:2;overflow-y:hidden;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.nojs__logo{margin:50px}.nojs__info{-webkit-align-self:stretch;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;height:75%;background-color:#fff;box-shadow:2px 0 2px 0 rgba(0,0,0,.05);border-top:1px solid #dfdfdf}dl.archive-year{margin:10px;width:235px;display:inline-block}dl.archive-year h2{font-size:3em;margin-bottom:0}.avatar{-o-object-fit:cover;width:128px;height:128px;background:#fff;border-radius:64px;object-fit:cover}.counter{line-height:1.2;width:50%;position:relative;font-size:2.3rem;font-weight:100;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.membercard,.membercard__counter{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.counter:first-of-type{border-right:1px solid #dfdfdf}.counter__label{padding:0 10px;font-size:.8rem}.membercard{box-sizing:border-box;margin:10px;width:235px;height:350px;display:flex;position:relative;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;background-color:#fff;border:1px solid #dfdfdf;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.membercard__avatar{margin:25px 0 0;width:100%;text-align:center}.membercard__info{width:calc(100% - 10px)}.membercard__socialLinks{margin:10px 0}.membercard__name{margin:20px 0 0;font-size:1.7rem;font-weight:400;position:relative}.membercard__name--tooLong{text-align:justify;display:block}.membercard__name--tooLong:hover>.link{transition:all .2s cubic-bezier(.455,.03,.515,.955);margin-left:calc(100% - 245px)}.membercard__name--tooLong:after{display:block;height:42px;width:15px;background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);content:"";position:absolute;top:0;right:0}.membercard__status{font-weight:300;font-size:1em;font-style:italic}.membercard__counter{margin-top:15px;display:flex;position:relative;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%}.membercardSmall,.membercardSmallContainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;position:relative}.membercardSmallContainer{display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;background-color:#fff;border-bottom:1px solid #dfdfdf;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;padding:0 10px}.membercardSmall{display:flex;min-width:235px}.blogcard,.tabsMenu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.membercardSmall__avatarWrapper{position:relative;height:50px;width:50px;margin:10px}.membercardSmall__avatar{position:relative;overflow:hidden;width:50px;height:50px;background:#fff;border-radius:25px;-o-object-fit:cover;object-fit:cover}.membercardSmall__counter{width:20px;height:20px;background:#6c4892;border-radius:10px;-o-object-fit:cover;object-fit:cover;position:absolute;right:-3px;top:-3px;font-weight:600;font-size:10px;text-align:center;line-height:20px;color:#fff}.membercardSmall__name{margin:10px 0 0;line-height:1.1;font-weight:400;width:calc(100% - 65px);font-size:1.5em}.blogcard{border:1px solid #dfdfdf;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;height:150px;display:flex;position:relative;margin:10px;background-color:#fff}.blogcard__tags,.blogcard__time,.blogcard__title{margin:10px 10px 10px 20px}.blogcard__wrapper{display:block;position:absolute;bottom:0;left:150px}.blogcard__title{line-height:1.1;font-weight:400;font-size:1.7rem;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.blogcard__tag{margin-left:5px}.blogcard__tag:first-of-type{margin-left:0}.navicon-button{display:inline-block;position:relative;padding:2.0625rem .625rem;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navicon-button .navicon:after,.navicon-button .navicon:before{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.navicon,.navicon:after,.navicon:before{height:.2rem;background:#333;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);border-radius:.2rem}.navicon{position:relative;width:2em;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.navicon:after,.navicon:before{display:block;content:"";width:2rem;position:absolute;z-index:-1;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.btn--full,.link--tab{width:100%}.link,.open .navicon:after,.open .navicon:before{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.navicon:before{top:.625rem}.navicon:after{top:-.625rem}.open:not(.steps) .navicon:after,.open:not(.steps) .navicon:before{top:0!important}.open .navicon:after,.open .navicon:before{transition:all .2s cubic-bezier(.455,.03,.515,.955)}.open.x .navicon{background:0 0}.open.x .navicon:before{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.open.x .navicon:after{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.link{color:#6c4892;position:relative;text-decoration:none;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.btn,.link--footer:before{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.link:hover{color:#855eaf;text-decoration:underline;text-decoration:none}.btn,.btn:hover,.dropy__content a,.dropy__title,.link--name,.link--nav{text-decoration:none}.link:focus{outline:0;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.link--nav{display:block;padding:5px 10px}.link--current{color:#9f9f9f}.link--glowing{color:#fff}.link--glowing:hover{text-shadow:0 0 2px #FFF;color:#fff}.link--name,.link--name:hover,.link--social,.link--tag{color:#333}.link--controls,.link--social:hover,.link--tag:hover{color:#4d4d4d}.link--controls:hover{color:#533770}.link--footer{color:#fff;padding:2px;margin:0 2px;box-sizing:border-box;position:relative}.link--footer:before{content:'';border-bottom:solid 1px #fff;position:absolute;bottom:5px;left:0;height:1px;width:100%;opacity:0;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.btn,.btn--loadMore,.dropy,.dropy__title{position:relative}.link--footer:hover{color:#fff}.link--footer:hover:before{opacity:1}.link--tab{padding:10px 15px;color:#4d4d4d;font-weight:500;text-transform:uppercase;text-align:center}.btn,.link--tab:hover{color:#333}.btn{display:inline-block;text-align:center;border:none;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;margin:0;overflow:visible;padding:.8em;transition:all .2s cubic-bezier(.455,.03,.515,.955);line-height:1.3}.btn--full,.btn--loadMore{display:block;text-align:center}.dropy__content ul,.dropy__title{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.btn--small{font-size:.75em}.btn--large{font-size:1.25em}.btn--pagination{margin:0 10px;text-transform:uppercase}.btn--pagination:hover{background-color:#D2D2D2;color:#333}.btn--pagination:active{background-color:#b9b9b9}.btn--pagination:disabled{background-color:#fff}.btn--readmore{margin:0 10px;font-weight:700;color:#4d4d4d}.btn--readmore:hover{background-color:#D2D2D2;color:#333}.btn--readmore:active{background-color:#b9b9b9}.btn--readmore:disabled{background-color:#fff}.btn--loadMore{margin:20px auto 0;text-transform:uppercase;min-width:151px;min-height:46px}.btn--synergia{background-color:#855eaf;color:#fff}.btn--synergia:hover{background-color:#6c4892}.btn--synergia:active{background-color:#533770}.btn--synergia:disabled{background-color:#bababa}.btn--info{background-color:#3498db}.btn--positive{background-color:#27ae60}.btn--negative{background-color:#c0392b}.btn--warning{background-color:#e67e22}.btn--raised{box-shadow:0 2px 5px 0 rgba(0,0,0,.26),0 2px 10px 0 rgba(0,0,0,.22)}.btn--raised:active{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.download-button-container{margin:0 -30px;padding:0 30px;border-top:1px solid #dfdfdf}dl,ul{-webkit-margin-before:0;-webkit-margin-after:0;-webkit-padding-start:0}dd{-webkit-margin-start:0}.dropy{margin-bottom:0}.dropy__title{display:inline-block;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.dropy__content{position:absolute;top:0;right:0;left:0;width:300px;z-index:1}.card,.card__image,.card__overimage{position:relative}.dropy__content ul{overflow:hidden;border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;max-height:0;opacity:0;padding:0;transition:all .2s cubic-bezier(.455,.03,.515,.955);list-style:none;background:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.26),0 2px 10px 0 rgba(0,0,0,.22)}.card,.tooltip{background-clip:padding-box}.dropy__content a{display:block;color:#333;padding:1rem 1.5rem;font-size:1.4rem;cursor:pointer;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dropy__content a:hover{color:#6c4892;background-color:#ececec}.dropy__content .dropy__header{border-bottom:1px solid #D2D2D2;margin-bottom:1.5rem;padding:1rem 1.5rem;font-size:1.6rem}.dropy__content .selected{font-weight:700!important;color:#6c4892}.dropy.open .dropy__content ul{max-height:17rem;overflow-y:auto;opacity:1}.card,.card__overimage,.doNotScroll,.error404,.noWrap,.note,.project__header,.project__meta,.swipe,.swipe-wrap,.video-container{overflow:hidden}.card{box-sizing:border-box;display:inline-block;vertical-align:top;margin:10px;border:1px solid #dfdfdf;width:320px;z-index:3;border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.card__excerpt{padding:1.25em;border-radius:0 0 .125em .125em;height:5em;background-color:#fff;color:#4d4d4d;font-size:1.063rem}@media screen and (max-width:61.99em){.card__excerpt{height:6em}}.card__action{border-top:1px solid #dfdfdf;padding:.625em 0;background-color:#fff}.card__overimage{background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.4));background-image:linear-gradient(transparent,rgba(0,0,0,.4));height:13.75em;z-index:initial;width:inherit}@media screen and (min-width:62em){.card__overimage{height:15.875em}}.card__image{left:0;right:0;top:0;bottom:0;width:100%;z-index:-1;height:auto;image-rendering:-moz-crisp-edges}.card__title{position:absolute;bottom:0;left:0;padding:1.25em 1.25em .625em;color:#fff;margin:0;font-weight:400;z-index:2}@font-face{font-family:fontello;src:url(../font/fontello.eot?81139378);src:url(../font/fontello.eot?81139378#iefix) format("embedded-opentype"),url(../font/fontello.woff2?81139378) format("woff2"),url(../font/fontello.woff?81139378) format("woff"),url(../font/fontello.ttf?81139378) format("truetype"),url(../font/fontello.svg?81139378#fontello) format("svg");font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.flag,.flag-body,.tabsMenu{width:100%}.loginbox__title,.modal__title,.ultron__state{text-transform:uppercase}.icon-plus:before{content:'\e800'}.icon-lastfm:before{content:'\e801'}.icon-facebook-squared:before{content:'\e802'}.icon-crown:before{content:'\e803'}.icon-briefcase:before{content:'\e804'}.icon-right-open-big:before{content:'\e805'}.icon-left-open-big:before{content:'\e806'}.icon-heart:before{content:'\e807'}.icon-archive:before{content:'\e808'}.icon-user-add:before{content:'\e809'}.icon-close:before{content:'\e80a'}.icon-mail:before{content:'\e80b'}.icon-info:before{content:'\e80c'}.icon-flag:before{content:'\e80d'}.icon-attention:before{content:'\e80e'}.icon-help:before{content:'\e80f'}.icon-cancel:before{content:'\e810'}.icon-link:before{content:'\e811'}.icon-down-open-big:before{content:'\e812'}.icon-down-open-mini:before{content:'\e813'}.icon-check:before{content:'\e814'}.icon-instagram:before{content:'\e815'}.icon-twitter:before{content:'\e816'}.icon-github:before{content:'\e817'}.icon-minus:before{content:'\e818'}.icon-dot-3:before{content:'\e819'}.note{position:relative;color:#fff;background-color:#6c4892}.note-secondary{background-color:#34495e}.note-success{background-color:#27ae60}.note-warning{background-color:#f39c12}.note-error{background-color:#e74c3c}.note-info{background-color:#3498db}.note-close,.note-icon{background-color:rgba(0,0,0,.25);text-align:center}.note-icon,.note-text{padding:24px}.note-icon{min-width:80px;font-size:2rem;padding:0}.tabsMenu__item,.tooltip{min-width:100px;border:1px solid #dfdfdf}.note-text{padding-right:48px}.note-close{position:absolute;top:12px;right:12px;line-height:30px;font-size:24px;color:#fff;opacity:0;-webkit-transition:all .25s;transition:all .25s}.swipe,.tabsMenu__item--current{position:relative}.tabsMenu,.tabsMenu__item{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.note-close:hover{background-color:rgba(0,0,0,.15);color:#fff}.note:hover .note-close{opacity:1}.flag{display:table}.flag-body,.flag-image{display:table-cell;vertical-align:middle}.flag--top .flag-body,.flag--top .flag-image{vertical-align:top}.flag-bottom .flag-body,.flag-bottom .flag-image{vertical-align:bottom}.flag-image>img{display:block;max-width:none}.flag-rev .flag-image{padding-right:0;padding-left:24px}.tabsMenu{margin:10px 0;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;list-style:none;padding-left:0;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.gh,.tabsMenu__item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.tabsMenu__item{display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;float:left;border-right:0;background-color:#fff;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.tabsMenu__item--current,.tabsMenu__item:hover{background-color:#ececec}.swipe__nav,.tooltip{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.tabsMenu__item:first-of-type{border-top-left-radius:3px;border-bottom-left-radius:3px}.tabsMenu__item:last-of-type{border-top-right-radius:3px;border-bottom-right-radius:3px;border-right:1px solid #dfdfdf}.tab__content{display:none}.tab__content--visible{display:block}.tab__content--hidden{display:none}.swipe{margin:20px -30px;width:inherit;height:400px;background-color:#efeff0}@media screen and (min-width:75em){.swipe{height:500px}}@media screen and (min-width:62em) and (max-width:74.99em){.swipe{height:400px}}@media screen and (min-width:48em) and (max-width:61.99em){.swipe{height:400px}.swipe-wrap>div img.slide{height:auto;max-width:100%}}.swipe__nav{position:absolute;padding:20px;font-size:2.5em;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);color:#D2D2D2;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.swipe__nav:hover{color:#9f9f9f}@media screen and (max-width:47.99em){.swipe{width:calc(100% + 60px);margin-left:-30px;height:auto}.swipe__nav{font-size:2.5em}}.swipe__prev{left:0}.swipe__next{right:0}.swipe-wrap{position:relative}.swipe-wrap>div{float:left;width:100%;position:relative;text-align:center}.swipe-wrap>div img.slide{width:100%;max-height:400px}@media screen and (min-width:75em){.swipe-wrap>div img.slide{width:100%;height:auto;max-height:none}}@media screen and (min-width:62em) and (max-width:74.99em){.swipe-wrap>div img.slide{height:auto;width:1000px;max-height:none}}.spinner{border:3px solid #efeff0;border-right-color:transparent;border-radius:50%;height:15px;margin:0 auto;position:relative;width:15px;-webkit-animation:spinner 1s linear 0s infinite;animation:spinner 1s linear 0s infinite}.tooltip,.tooltip:before{position:absolute;background-color:#fff}@-webkit-keyframes spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.tooltip{cursor:default;left:50%;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0);color:#333;min-height:30px;padding:8px;border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;display:block;visibility:hidden;opacity:0;z-index:4;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.gh,.lf{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.tooltip:before{content:"";width:5px;height:5px;border:1px solid #dfdfdf;top:-2px;left:calc(50% - 1px);-webkit-transform:rotate(45deg) translateX(-50%);-ms-transform:rotate(45deg) translateX(-50%);transform:rotate(45deg) translateX(-50%);border-right:0;border-bottom:0}.lf,.map,.map__container{position:relative}.modal__topbar,.ultron__state{border-bottom:1px solid #dfdfdf}.tooltip--active{visibility:visible;opacity:1;-webkit-transform:translate3d(-50%,10px,0);transform:translate3d(-50%,10px,0)}.gh{display:flex;white-space:nowrap;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;height:45px;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.gh__name,.lf{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.gh__name{margin:0;font-weight:400;font-size:1.2rem;line-height:1;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline}.gh__avatar,.lf__cover{margin-right:8px;border-radius:3px;background-clip:padding-box}.gh__avatar{height:24px;width:24px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.lf{display:flex;min-height:40px;width:150px;transition:all .2s cubic-bezier(.455,.03,.515,.955);line-height:1.1}.lf__trackInfo,.modal__container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.map__zoomIn,.map__zoomOut,.modal{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955)}.lf__cover{height:36px;width:36px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.map__zoomIn,.map__zoomOut,.tagWrapper{border-radius:3px;background-clip:padding-box}.lf__song{width:100%}.lf__artist{font-size:.9rem;width:100%}.lf__trackInfo{display:flex;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.tagWrapper{padding:5px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;display:inline-block}.tagSize-1{font-size:1rem}.tagSize-5{font-size:2rem}.map__container{width:100%;height:25rem;background-color:#D2D2D2}.modal,.modal__overlay{position:fixed;top:0;bottom:0;left:0;right:0}.map__zoomIn,.map__zoomOut{transition:all .2s cubic-bezier(.455,.03,.515,.955);height:50px;width:50px;cursor:pointer;margin:20px 30px 5px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;font-size:2.24rem;text-align:center}.map__zoomOut{margin-top:0}.modal{visibility:hidden;opacity:0;z-index:3;transition:all .2s cubic-bezier(.455,.03,.515,.955)}.modal__overlay{background-color:rgba(239,239,240,.6);z-index:0}.modal__body{position:relative;max-width:600px;margin:0 auto;top:25%;-webkit-transform:translateY(-25%);-ms-transform:translateY(-25%);transform:translateY(-25%)}.modal__topbar{position:relative;text-align:center;overflow:hidden;padding:.8rem}.modal__title{text-align:center;color:#4d4d4d;margin:0}.modal__close{position:absolute;right:5px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:1.6rem;color:#4d4d4d;cursor:pointer;-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.error404::after,.error404__topbar::after{top:0;left:0;bottom:0;right:0;content:""}.modal__close:hover{color:#e74c3c}.modal__container{position:relative;padding:20px;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.modal__image{height:auto;max-width:200px;position:relative;margin-right:20px}.modal__content{width:360px}.error404{position:absolute;height:100vh;width:100vw;background:center center no-repeat fixed #000;background-size:cover}.project,.project__header{background-clip:padding-box}.loginbox__title,.page-template-login{background-position:center;background-repeat:no-repeat}.error404::after{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFUlEQVQIHWNgYGB4/P//fwZGEAECAEVMBt9tNvSUAAAAAElFTkSuQmCC);position:absolute;z-index:-2}.error404__topbar{position:relative;font-size:2rem;padding:10px 20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.error404__topbar::after{width:100%;height:30vh;background-image:-webkit-linear-gradient(#6c4892 10%,transparent 100%);background-image:linear-gradient(#6c4892 10%,transparent 100%);position:absolute;z-index:-1}.error404__back{margin-right:5px}.error404__logo{height:30px;width:auto}.error404__404{margin-left:5px;color:#fff}.error404__powered{position:fixed;bottom:5px;right:5px}.project{border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;margin:.625em;border:1px solid #dfdfdf}.project__header{width:100%;height:auto;position:relative;border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;-ms-border-radius:3px 3px 0 0;-o-border-radius:3px 3px 0 0;z-index:3}@media screen and (min-width:62em){.project__header{height:25em}}.project__meta{color:#fff;padding:0 30px;font-weight:400}@media screen and (min-width:48em){.project__meta{padding:0 53px}}.project__status{float:left;width:100%}.project__time{float:left;padding-right:10px}.project__links{position:relative;display:inline;padding:0 5px;border-left:1px solid rgba(255,255,255,.2)}.project__overimage{background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.4));background-image:linear-gradient(transparent,rgba(0,0,0,.4));width:100%;height:inherit}.about__featuredimg,.project__featuredimg{height:auto;min-width:100%;left:50%;position:relative;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:100%;top:-25%;z-index:-1}.project__title{margin:0;font-weight:400;color:#fff;font-size:1.5em;padding:0 1.25em .625em}@media screen and (min-width:48em){.project__title{font-size:2.5em}}.about__content,.project__content{background-color:#fff;padding:0 30px 30px;font-size:1.125em;zoom:1}.about__content:after,.about__content:before,.project__content:after,.project__content:before{content:"";display:table}.about__content img,.project__content img{max-width:100%;height:auto}.about__content figure,.project__content figure{text-align:center;background-color:#f8f8f8;margin:0 -30px}.about__content figcaption,.project__content figcaption{font-style:oblique;background-color:#fff;text-align:center;padding:0 30px}.video-container{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;margin:0 -30px}.video-container embed,.video-container iframe,.video-container object{position:absolute;top:0;left:0;width:100%;height:100%}.entry-content embed,.entry-content iframe,.entry-content img,.entry-content object{max-width:100%}.page-template-login{height:100%;position:fixed;display:block;width:100%;background-image:url(../img/login_bg.jpg);background-attachment:fixed;background-size:cover}.loginbox{width:300px;left:50%;position:fixed;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.loginbox__title{background-color:#333;border-radius:5px 5px 0 0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxIHIxMzcyNSIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgd2lkdGg9IjMxMS4zMDA5OSIKICAgaGVpZ2h0PSI1MCIKICAgdmlld0JveD0iMCAwIDMxMS4zMDA5OSA1MCIKICAgc29kaXBvZGk6ZG9jbmFtZT0ic3luZXJnaWEtbW9uby1ob3Jpem9udGFsLWludmVydGVkLnN2ZyI+PG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOCI+PHJkZjpSREY+PGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz48ZGM6dGl0bGU+PC9kYzp0aXRsZT48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGRlZnMKICAgICBpZD0iZGVmczYiPjxsaW5lYXJHcmFkaWVudAogICAgICAgeDE9IjAuMzAwMDAwMDEiCiAgICAgICB5MT0iMCIKICAgICAgIHgyPSIwLjY5OTk5OTk5IgogICAgICAgeTI9IjAiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTQuNjQ0NjQsNjMuNDYwMTIsLTU1LjU2NzI3LDEyLjgyMzIyLDMyMS43OTgzLDI3Ny4wMzkzKSIKICAgICAgIHNwcmVhZE1ldGhvZD0icGFkIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDQiPjxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLW9wYWNpdHk6MTtzdG9wLWNvbG9yOiMyZjE2MzYiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0NiIgLz48c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1vcGFjaXR5OjE7c3RvcC1jb2xvcjojNmM0MmE0IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDgiIC8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQKICAgICAgIHgxPSIwLjMwMDAwMDAxIgogICAgICAgeTE9IjAiCiAgICAgICB4Mj0iMC42OTk5OTk5OSIKICAgICAgIHkyPSIwIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xNC42NDQ2NCwtNjMuNDYwMTIsNTUuNTY3MjcsLTEyLjgyMzIyLDI4MS4wNDgsMzQwLjkxMzUpIgogICAgICAgc3ByZWFkTWV0aG9kPSJwYWQiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2MiI+PHN0b3AKICAgICAgICAgc3R5bGU9InN0b3Atb3BhY2l0eToxO3N0b3AtY29sb3I6IzJmMTYzNiIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDY0IiAvPjxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLW9wYWNpdHk6MTtzdG9wLWNvbG9yOiM2YzQyYTQiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A2NiIgLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjEzNjYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNzE3IgogICAgIGlkPSJuYW1lZHZpZXc0IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTpzbmFwLWNlbnRlcj0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgc2hvd2d1aWRlcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpndWlkZS1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtbm9kZXM9ImZhbHNlIgogICAgIGlua3NjYXBlOnNuYXAtcGFnZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWJib3g9ImZhbHNlIgogICAgIGlua3NjYXBlOmJib3gtcGF0aHM9InRydWUiCiAgICAgaW5rc2NhcGU6YmJveC1ub2Rlcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWJib3gtZWRnZS1taWRwb2ludHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1iYm94LW1pZHBvaW50cz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWdsb2JhbD0idHJ1ZSIKICAgICBpbmtzY2FwZTp6b29tPSIwLjcwNzEwNjc4IgogICAgIGlua3NjYXBlOmN4PSIzOTEuNTUwMzUiCiAgICAgaW5rc2NhcGU6Y3k9IjIyNC43MDQzIgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9Imc0Mzc5Ij48c29kaXBvZGk6Z3VpZGUKICAgICAgIHBvc2l0aW9uPSI1MjYuMTgxLDQ4My4xMzA3MSIKICAgICAgIG9yaWVudGF0aW9uPSIxLDAiCiAgICAgICBpZD0iZ3VpZGU0MjIxIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IiIKICAgICAgIGlua3NjYXBlOmNvbG9yPSJyZ2IoMCwwLDI1NSkiIC8+PHNvZGlwb2RpOmd1aWRlCiAgICAgICBwb3NpdGlvbj0iMzY2LjI4MTMxLDM3Mi4wNDciCiAgICAgICBvcmllbnRhdGlvbj0iMCwxIgogICAgICAgaWQ9Imd1aWRlNDIyMyIKICAgICAgIGlua3NjYXBlOmxhYmVsPSIiCiAgICAgICBpbmtzY2FwZTpjb2xvcj0icmdiKDAsMCwyNTUpIiAvPjxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDQyMjUiIC8+PHNvZGlwb2RpOmd1aWRlCiAgICAgICBwb3NpdGlvbj0iMTE1Ljk2NTUxLDI4LjUiCiAgICAgICBvcmllbnRhdGlvbj0iMCwxIgogICAgICAgaWQ9Imd1aWRlNDIyOSIKICAgICAgIGlua3NjYXBlOmxhYmVsPSIiCiAgICAgICBpbmtzY2FwZTpjb2xvcj0icmdiKDAsMCwyNTUpIiAvPjxzb2RpcG9kaTpndWlkZQogICAgICAgcG9zaXRpb249IjEyNC42MDksMzM3Ljk5NzA0IgogICAgICAgb3JpZW50YXRpb249IjEsMCIKICAgICAgIGlkPSJndWlkZTQzNzciCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iIgogICAgICAgaW5rc2NhcGU6Y29sb3I9InJnYigwLDAsMjU1KSIgLz48L3NvZGlwb2RpOm5hbWVkdmlldz48ZwogICAgIGlkPSJnMTAiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpbmtzY2FwZTpsYWJlbD0iTG9nbyIKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1LDAsMCwtMS4yNSwwLDUwLjAwMDAxOCkiPjxnCiAgICAgICBpZD0iZzQzNzkiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4Ljc0MjMwNjcsMCkiPjxnCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuODUzNjY2MDEsMCwwLDAuODUzNjY2MTcsLTguMjE5NDA3MywwLjUzNjQxNDk1KSIKICAgICAgICAgaWQ9Imc0MjMzIj48cGF0aAogICAgICAgICAgIGQ9Im0gMjY4LjQ0MTIyLDExLjQ2MTQxNCA4LjUwNCwwIDAsOS45MjEzIDUuNjY5MywwIDAsLTkuOTIxMyA4LjUwMzksMCAwLDE5Ljg0MjYgYyAwLDEuNTY1MyAtMS4yNjk0LDIuODM0NiAtMi44MzQ2LDIuODM0NiBsIC01LjY2OTMsMCAtNS42NjkzLDAgLTUuNjY5MywwIGMgLTEuNTY1MywwIC0yLjgzNDcsLTEuMjY5MyAtMi44MzQ3LC0yLjgzNDYgbCAwLC0xOS44NDI2IHogbSA4LjUwNCwxMi43NTYgMCw3LjA4NjYgNS42NjkzLDAgMCwtNy4wODY2IC01LjY2OTMsMCB6IgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgaWQ9InBhdGgxNCIKICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPjxwYXRoCiAgICAgICAgICAgZD0ibSA3Mi44NTA3MTcsMjYuODQ4MjE0IDEyLjQxOTEsLTQuNTIwMSBjIDEuMDI5LC0wLjQyNTIgMS43NTQxLC0xLjQzODMgMS43NTQxLC0yLjYyMDcgbCAwLC01LjQxMTMgYyAwLC0xLjU2NTMgLTEuMjY5MywtMi44MzQ3IC0yLjgzNDYsLTIuODM0NyBsIC01LjY2OTMsMCAtMTQuMTczMywwIDAsMi44MzQ3IDE0LjE3MzMsMCAwLDQuNDU1NSAtMTIuNDIxMiw0LjUyMSBjIC0xLjAyNzgsMC40MjU3IC0xLjc1MjEsMS40Mzg1IC0xLjc1MjEsMi42MiBsIDAsNS40MTE0IGMgMCwxLjU2NTMgMS4yNjk0LDIuODM0NiAyLjgzNDcsMi44MzQ2IGwgNS42NjkzLDAgMTQuMTczMiwwIDAsLTIuODM0NiAtMTQuMTczMiwwIDAsLTQuNDU1OCB6IgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgaWQ9InBhdGgxNiIKICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPjxwYXRoCiAgICAgICAgICAgZD0ibSAyMDMuMjQ0NDIsMjEuMzgyNzE0IGMgMCwtMy4zMDY5IDAsLTYuNjE0NCAwLC05LjkyMTMgbCA4LjUwMzksMCBjIDAsMi44MzQ3IDAsNS42Njk2IDAsOC41MDQzIDAsMS41NjUzIC0xLjI2OTMsMi44MzQ2IC0yLjgzNDYsMi44MzQ2IDEuNTU3NiwwIDIuODM0NiwxLjI3NyAyLjgzNDYsMi44MzQ3IDAsMS40MTcgMCw0LjI1MTkgMCw1LjY2OSAwLDEuNTY1MyAtMS4yNjkzLDIuODM0NiAtMi44MzQ2LDIuODM0NiBsIC01LjY2OTMsMCAtNS42NjkzLDAgLTUuNjY5MywwIGMgLTEuNTY1MywwIC0yLjgzNDYsLTEuMjY5MyAtMi44MzQ2LC0yLjgzNDYgbCAwLC0xOS44NDI2IDguNTAzOSwwIGMgMCwzLjMwNjkgMCw2LjYxNDQgMCw5LjkyMTMgbCA1LjY2OTMsMCB6IG0gLTUuNjY5MywyLjgzNDcgNS42NjkzLDAgMCw3LjA4NjYgLTUuNjY5MywwIDAsLTcuMDg2NiB6IgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiCiAgICAgICAgICAgaWQ9InBhdGgxOCIKICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPjxwYXRoCiAgICAgICAgICAgZD0ibSAxMjYuNzA5MDIsMTEuNDYxNDE0IDguNTAzOSwwIGMgMCw2LjYxNDEgMCwxMy4yMjg1IDAsMTkuODQyNiBsIDUuNjY5MywwIGMgMCwtNi42MTQxIDAsLTEzLjIyODUgMCwtMTkuODQyNiBsIDguNTAzOSwwIDAsMTkuODQyNiBjIDAsMS41NjUzIC0xLjI2OTMsMi44MzQ2IC0yLjgzNDYsMi44MzQ2IGwgLTUuNjY5MywwIC01LjY2OTMsMCAtNS42NjkzLDAgYyAtMS41NjUzLDAgLTIuODM0NiwtMS4yNjkzIC0yLjgzNDYsLTIuODM0NiBsIDAsLTE5Ljg0MjYgeiIKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgIGlkPSJwYXRoMjAiCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz48cGF0aAogICAgICAgICAgIGQ9Im0gMTYwLjcyNDcyLDExLjQ2MTQxNCAxOS44NDI1LDAgMCwyLjgzNDcgLTE0LjE3MzIsMCAwLDcuMDg2NiA5LjU1NjcsMCAwLDIuODM0NyAtOS41NTY3LDAgMCw3LjA4NjYgMTQuMTczMiwwIDAsMi44MzQ2IC0xOS44NDI1LDAgYyAtMS41NjUzLDAgLTIuODM0NiwtMS4yNjkzIC0yLjgzNDYsLTIuODM0NiBsIDAsLTE3LjAwNzkgYyAwLC0xLjU1NzYgMS4yNzY3LC0yLjgzNDcgMi44MzQ2LC0yLjgzNDciCiAgICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICBpZD0icGF0aDIyIgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+PHBhdGgKICAgICAgICAgICBkPSJtIDI1MS40MzM0MiwxMS40NjE0MTQgOC41MDM5LDAgYyAwLDcuNTU4OSAwLDE1LjExODMgMCwyMi42NzcyIGwgLTUuNjY5MywwIGMgLTEuNTY1MywwIC0yLjgzNDYsLTEuMjY5MyAtMi44MzQ2LC0yLjgzNDYgbCAwLC0xOS44NDI2IHoiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICBpZD0icGF0aDI0IgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+PHBhdGgKICAgICAgICAgICBkPSJtIDIzMS41OTA4MiwyMS4zODI3MTQgMi44MzQ3LDAgYyAwLC0yLjM2MjEgMCwtNC43MjQ1IDAsLTcuMDg2NiBsIC01LjY2OTMsMCBjIDAsNS42NjkgMCwxMS4zMzg5IDAsMTcuMDA3OSA0LjcyNDIsMCA5LjQ0OSwwIDE0LjE3MzIsMCBsIDAsMi44MzQ2IC04LjUwMzksMCAtNS42NjkzLDAgLTUuNjY5MywwIGMgLTEuNTY1MywwIC0yLjgzNDYsLTEuMjY5MyAtMi44MzQ2LC0yLjgzNDYgMCwtNS42NjkzIDAsLTExLjMzODYgMCwtMTcuMDA3OSAwLC0xLjU2NTMgMS4yNjkzLC0yLjgzNDcgMi44MzQ2LC0yLjgzNDcgNS42NjksMCAxMS4zMzg5LDAgMTcuMDA3OSwwIDEuNTY1MywwIDIuODM0NiwxLjI2OTQgMi44MzQ2LDIuODM0NyAwLDIuMzYyMSAwLDQuNzI0NSAwLDcuMDg2NiAwLDEuNTY1MyAtMS4yNjkzLDIuODM0NyAtMi44MzQ2LDIuODM0NyAtMi44MzQ0LDAgLTUuNjY5NiwwIC04LjUwNCwwIGwgMCwtMi44MzQ3IHoiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIKICAgICAgICAgICBpZD0icGF0aDI2IgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+PHBhdGgKICAgICAgICAgICBkPSJtIDk1LjUyNzgxNywzNC4xMzg2MTQgOC41MDM5OTMsMCBjIDAsLTYuNjE0MSAwLC0zLjMwNzIgMCwtOS45MjEyIGwgNS42NjkzLDAgYyAwLDYuNjE0IDAsMy4zMDcxIDAsOS45MjEyIGwgOC41MDM5MSwwIDAsLTkuOTIxMiBjIDAsLTEuNTY1MyAtMS4yNjkzLC0yLjgzNDcgLTIuODM0NiwtMi44MzQ3IGwgLTQuMjUyMDEsMCAwLC05LjkyMTMgLTguNTAzOSwwIDAsOS45MjEzIC00LjI1MTk5MywwIGMgLTEuNTY1MywwIC0yLjgzNDcsMS4yNjk0IC0yLjgzNDcsMi44MzQ3IGwgMCw5LjkyMTIgeiIKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICAgICAgICAgIGlkPSJwYXRoMjgiCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz48L2c+PGcKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4zMjM5ODAzNywwLDAsMC4zMjM5ODA0MywtOS41NDQ4NTYsLTE2MS44MzQ1MikiCiAgICAgICAgIGlkPSJnNDIwMyIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiI+PGcKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjc5MzM5MDQsMCwwLDIuNzkzMzkwNCwtNzc3Ljc2ODcyLC0zMDEuODI2MDkpIgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuNDMxOTUxNjQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICBpZD0iZzQyMzctOCI+PGcKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuNDMxOTUxNjQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICAgIGlkPSJnNDIzOS03Ij48ZwogICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjQzMTk1MTY0O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgICAgICAgIGlkPSJnNDI0NS0zIj48cGF0aAogICAgICAgICAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2Nzc2NjY2NjY3NzY2Njc2NjYyIKICAgICAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgICAgIGlkPSJwYXRoNDI1My02IgogICAgICAgICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMjg2MzkwMzMsMCwwLC0wLjI4NjM5MDMzLDI2MS44MzMxMiw0MTQuMTYwMjIpIgogICAgICAgICAgICAgICAgIGQ9Im0gMTQwLjI0MDIzLDI5MC4xMjY5NSBjIC0zLjg0NjU2LDAgLTguNTY4MDgsMC4yNjE1OSAtMTIuMjYxNzEsMC44MDQ2OSAzMC43NDM4MSwxMS41NjQ0NiA1My44NDk2LDQxLjYxNjQyIDUzLjg0OTYsNzYuMzc1IDAsMjIuOTQyNzQgLTE4LjY0NDQ0LDQxLjU5Mzc1IC00MS41ODc4OSw0MS41OTM3NSAtMTEuMTMyOTQsMCAtMjAuODc2MjcsLTQuNjcyMzIgLTI4LjE3NzczLC0xMS45Mzc1IC0yLjAxMTA2LC0xLjc3NDU5IC0zLjg0NDU1LC0zLjc0MzQ2IC01LjQ2MDk0LC01Ljg4ODY3IDguMDM2MzgsMjQuNzgwNzMgMjguMDkwNTgsNDQuMDk5ODUgNTMuNDI5NjksNTAuODEyNSAzMS45ODM1LC04LjQ3MjA5IDU1Ljg1MzU3LC0zNi45MjY2NSA1Ny4zMTgzNiwtNzEuMjMyNDIgMS40ZS00LC0wLjAwMyAtMS40ZS00LC0wLjAwNyAwLC0wLjAxIDAuMDExMSwtMC4yNjA5OCAwLjAwNywtMC41MjU0NSAwLjAxNTYsLTAuNzg3MTEgMC4wMjc2LC0wLjg0Nzk3IDAuMDU0NywtMS42OTYwNCAwLjA1NDcsLTIuNTUwNzggMCwtNDIuNjQzMyAtMzQuNTM2MzgsLTc3LjE3OTY5IC03Ny4xNzk2OSwtNzcuMTc5NjkgeiBtIDM3LjUxNzU4LDczLjc5MTAyIGMgMC4wNDY1LDEuMTEzMjggMC4wNzIzLDIuMjMyNzQgMC4wNzIzLDMuMzU3NDIgMCwwLjY4MzE3IC0wLjAxODUsMS4zNjI0MiAtMC4wNTI3LDIuMDM3MTEgMC4wMzQ5LC0wLjY2NDUyIDAuMDU0NywtMS4zMzI1NyAwLjA1NDcsLTIuMDA1ODYgMCwtMS4xMzU1NSAtMC4wMjU3LC0yLjI2NTEyIC0wLjA3NDIsLTMuMzg4NjcgeiIKICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjE0NTU2MTM0O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+PC9nPjwvZz48L2c+PGcKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgyLjc5MzM5MDQsMCwwLDIuNzkzMzkwNCwtNzc3Ljc2ODcyLC0zMDEuODI2MDkpIgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjEuMTQ1NTYxMzQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICBpZD0iZzQyNTUtMSI+PGcKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjEuMTQ1NTYxMzQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICAgIGlkPSJnNDI1Ny01Ij48ZwogICAgICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDoxLjE0NTU2MTM0O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgICAgICAgIGlkPSJnNDI2My0xIj48cGF0aAogICAgICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICAgICAgaWQ9InBhdGg0MjcxLTYiCiAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yODYzOTAzMywwLDAsLTAuMjg2MzkwMzMsMjYxLjgzMzEyLDQxNC4xNjAyMikiCiAgICAgICAgICAgICAgICAgZD0ibSAxMTguNDQzMzYsMjkyLjY5NTMxIGMgLTMzLjAxNzc3Niw4Ljc0NjI3IC01Ny4zODg2NzMsMzguNzg3MjIgLTU3LjM4ODY3Miw3NC41NzgxMyAwLDQyLjY0MzY2IDM0LjU0MDI5Miw3Ny4xODM1OSA3Ny4xODM1OTIsNzcuMTgzNTkgNC4xMzkwNywwIDguMTYyNjcsLTAuNDMxNDcgMTIuMTIzMDUsLTEuMDU4NTkgLTMxLjI1ODM4LC0xMS4yOTcyNSAtNTMuNzE0ODQ2LC00MC45OTc5NyAtNTMuNzE0ODQ2LC03Ni4xMjUgMCwtMjIuOTQyMzkgMTguNjQ4MDM2LC00MS41OTE4IDQxLjU5MTc5NiwtNDEuNTkxOCAxMy44MjE5OSwwIDI1Ljk5ODQ1LDYuODQwNTYgMzMuNTY0NDUsMTcuMjM4MjggLTguMTYwMTEsLTI0LjUxNjggLTI4LjIwNjU0LC00My41NjA5OCAtNTMuMzU5MzcsLTUwLjIyNDYxIHoiCiAgICAgICAgICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MS4xNDU1NjEzNDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPjwvZz48L2c+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPg==);background-size:200px auto;height:65px;width:100%;margin-bottom:-1px;text-align:center}.no-svg .loginbox__title{background-image:url(img/synergia-mono-horizontal-inverted.png)}@media only screen and (-moz-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3 / 2),only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.no-svg .loginbox__title{background-image:url(img/synergia-mono-horizontal-inverted@2x.png)}}.loginbox__fieldset{background:#efeff0;border-radius:0 0 5px 5px;padding:20px;position:relative}.loginbox__fieldset:before{background-color:#efeff0;content:"";height:8px;left:50%;margin:-4px 0 0 -4px;position:absolute;top:0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:8px}.loginbox__input{background-color:#fff;box-sizing:border-box;text-align:center}.loginbox__input--login{border-radius:3px 3px 0 0;border:1px solid #dfdfdf;padding:8px 6px;width:100%}.loginbox__input--password{font:caption;border-radius:0 0 3px 3px;border:1px solid #dfdfdf;border-top:0;padding:8px 6px;width:100%;margin-bottom:15px}.loginbox__input--checkbox{display:none}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeInAsideTitles{0%{opacity:0}100%{opacity:.8}}@keyframes fadeInAsideTitles{0%{opacity:0}100%{opacity:.8}}@-webkit-keyframes bannerAnimation{0%{height:0}100%{height:520px}}@keyframes bannerAnimation{0%{height:0}100%{height:520px}}.blazy{-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out;opacity:0}.blazy.b-error,.blazy.b-loaded,.visible{opacity:1}.brand__logo.blazy.b-loaded{-webkit-transition:all .2s cubic-bezier(.455,.03,.515,.955);transition:all .2s cubic-bezier(.455,.03,.515,.955)}.card__overimage.loading,.center-cropped.loading{background-image:-webkit-linear-gradient(transparent,#fff);background-image:linear-gradient(transparent,#fff)}.bottom{position:absolute;bottom:0}.left{float:left}.textRight{text-align:right}.noWrap{white-space:nowrap}.visible{visibility:visible}.hidden{opacity:0;visibility:hidden;z-index:0}.noMargins{margin:0}.ultron{position:relative;margin:0 auto;width:400px;text-align:center;background-color:#fff;border:1px solid #dfdfdf;border-radius:3px;background-clip:padding-box;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}.ultron__state{font-size:3.5rem;font-weight:300;padding:10px}.ultron__datetime{padding:10px;font-size:1.125rem;color:#4d4d4d}.recruitment__info,.recruitment__links,.recruitment__title{color:#fff;font-family:'PT Mono',monospace;font-size:22px}.recruitment{background-position:center center;background-repeat:no-repeat;background-attachment:fixed;background-size:cover;width:100vw;height:100vh}.recruitment__grad{background:-webkit-linear-gradient(rgba(58,59,129,.87),rgba(126,62,145,.68));background:linear-gradient(rgba(58,59,129,.87),rgba(126,62,145,.68));width:100vw;height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:column;-ms-flex-flow:column;flex-flow:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.recruitment__title{font-weight:400}.recruitment__links{margin-top:20px}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.membercardSmall__avatarWrapper a[href]:after,a.link--name[href]:after,a.link--social[href]:after,a[href].link--tag:after,a[href^="#"]:after,a[href^="http://www.pwr.edu.pl/index.dhtml"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.download-button-container,.footer__social,.topbarWrapper{display:none}.global{padding:0;margin-bottom:0}.project__meta{padding:0 60px}.project__title{font-size:3rem}.footer-wrapper{position:relative}} \ No newline at end of file diff --git a/build/style/prism-okaidia.css b/build/style/prism-okaidia.css index 7cec843..def0228 100755 --- a/build/style/prism-okaidia.css +++ b/build/style/prism-okaidia.css @@ -1,2 +1 @@ -code[class*=language-],pre[class*=language-]{color:#f8f8f2;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help} -/*# sourceMappingURL=prism-okaidia.css.map */ +code[class*=language-],pre[class*=language-]{color:#f8f8f2;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help} \ No newline at end of file diff --git a/package.json b/package.json index 06615c8..df98a42 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mknm-synergia-theme", - "version": "1.2.0", + "version": "2.0.5", "description": "MKNM \"Synergia\" Theme ===================== Strona internetowa naszego koła naukowego zawsze była ważnym miejscem do eksponowania naszych projektów, sukcesów i wydarzeń. Nadchodzące zmiany spowodują, że strona zostanie wyjątkowym instrumentem do przedstawienia swojego projektu.", "main": "index.js", "scripts": { diff --git a/style.css b/style.css index c5309e9..20cf084 100755 --- a/style.css +++ b/style.css @@ -3,7 +3,7 @@ Theme Name: Synergia Author: Stanisław Dac Author URI: http://github.com/stsdc Description: Specjalnie dla Międzywydziałowego Koła Naukowego Mechatroniki "Synergia" -Version: 2.0.4 +Version: 2.0.5 GitHub Theme URI: https://github.com/synergia/mknm-synergia-theme GitHub Branch: master */