/* Minification failed. Returning unminified contents.
(370,40-41): run-time error JS1014: Invalid character: `
(370,41-42): run-time error JS1195: Expected expression: <
(370,59-60): run-time error JS1195: Expected expression: <
(370,64-65): run-time error JS1014: Invalid character: `
(371,40-41): run-time error JS1014: Invalid character: `
(371,41-42): run-time error JS1195: Expected expression: <
(371,59-60): run-time error JS1195: Expected expression: <
(371,63-64): run-time error JS1014: Invalid character: `
(373,18-19): run-time error JS1193: Expected ',' or ')': :
(373,37-38): run-time error JS1004: Expected ';': {
(381,44-45): run-time error JS1014: Invalid character: `
(381,45-46): run-time error JS1195: Expected expression: <
(381,77-78): run-time error JS1195: Expected expression: <
(381,82-83): run-time error JS1014: Invalid character: `
(382,44-45): run-time error JS1014: Invalid character: `
(382,77-78): run-time error JS1195: Expected expression: <
(382,81-82): run-time error JS1014: Invalid character: `
(385,9-10): run-time error JS1002: Syntax error: }
(389,24-25): run-time error JS1197: Too many errors. The file might not be a JavaScript file: .
 */
/*! jQuery v3.1.0 | (c) jQuery Foundation | jquery.org/license */
!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,
r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:X.test(c)?JSON.parse(c):c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var $=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,_=new RegExp("^(?:([+-])=|)("+$+")([a-z%]*)$","i"),aa=["Top","Right","Bottom","Left"],ba=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ca=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function da(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&_.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ea={};function fa(a){var b,c=a.ownerDocument,d=a.nodeName,e=ea[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ea[d]=e,e)}function ga(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ba(d)&&(e[f]=fa(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ga(this,!0)},hide:function(){return ga(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ba(this)?r(this).show():r(this).hide()})}});var ha=/^(?:checkbox|radio)$/i,ia=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ja=/^$|\/(?:java|ecma)script/i,ka={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var na=/<|&#?\w+;/;function oa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(na.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ia.exec(f)||["",""])[1].toLowerCase(),i=ka[h]||ka._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),"script"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;c<h;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==va()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===va()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ta:ua,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:ua,isPropagationStopped:ua,isImmediatePropagationStopped:ua,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ta,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ta,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ta,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&qa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ra.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return wa(this,a,b,c,d)},one:function(a,b,c,d){return wa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=ua),this.each(function(){r.event.remove(this,a,c,b)})}});var xa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ya=/<script|<style|<link/i,za=/checked\s*(?:[^=]|=\s*.checked.)/i,Aa=/^true\/(.*)/,Ba=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ca(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ga(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ha.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ha(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,"script"),Da),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,la(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ea),l=0;l<i;l++)j=h[l],ja.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ba,""),k))}return a}function Ia(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(la(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&ma(la(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(xa,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);if(b)if(c)for(f=f||la(a),g=g||la(h),d=0,e=f.length;d<e;d++)Fa(f[d],g[d]);else Fa(a,h);return g=la(h,"script"),g.length>0&&ma(g,!i&&la(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(la(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(la(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ja=/^margin/,Ka=new RegExp("^("+$+")(?!px)[a-z%]+$","i"),La=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",pa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,pa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Ma(a,b,c){var d,e,f,g,h=a.style;return c=c||La(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ka.test(g)&&Ja.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Na(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Oa=/^(none|table(?!-c[ea]).+)/,Pa={position:"absolute",visibility:"hidden",display:"block"},Qa={letterSpacing:"0",fontWeight:"400"},Ra=["Webkit","Moz","ms"],Sa=d.createElement("div").style;function Ta(a){if(a in Sa)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ra.length;while(c--)if(a=Ra[c]+b,a in Sa)return a}function Ua(a,b,c){var d=_.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Va(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+aa[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+aa[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+aa[f]+"Width",!0,e))):(g+=r.css(a,"padding"+aa[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+aa[f]+"Width",!0,e)));return g}function Wa(a,b,c){var d,e=!0,f=La(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Ma(a,b,f),(d<0||null==d)&&(d=a.style[b]),Ka.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Va(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ma(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=_.exec(c))&&e[1]&&(c=da(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Ma(a,b,d)),"normal"===e&&b in Qa&&(e=Qa[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Oa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Wa(a,b,d):ca(a,Pa,function(){return Wa(a,b,d)})},set:function(a,c,d){var e,f=d&&La(a),g=d&&Va(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=_.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ua(a,c,g)}}}),r.cssHooks.marginLeft=Na(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Ma(a,"marginLeft"))||a.getBoundingClientRect().left-ca(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+aa[d]+b]=f[d]||f[d-2]||f[0];return e}},Ja.test(a)||(r.cssHooks[a+b].set=Ua)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=La(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=aa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function eb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ba(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],$a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ga([a],!0),j=a.style.display||j,k=r.css(a,"display"),ga([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ga([a],!0),m.done(function(){p||ga([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=db(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function fb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function gb(a,b,c){var d,e,f=0,g=gb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||bb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ya||bb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(fb(k,j.opts.specialEasing);f<g;f++)if(d=gb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,db,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(gb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return da(c.elem,a,_.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],gb.tweeners[c]=gb.tweeners[c]||[],gb.tweeners[c].unshift(b)},prefilters:[eb],prefilter:function(a,b){b?gb.prefilters.unshift(a):gb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:e.duration="number"==typeof e.duration?e.duration:e.duration in r.fx.speeds?r.fx.speeds[e.duration]:r.fx.speeds._default,null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ba).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=gb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&_a.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(cb(b,!0),a,d,e)}}),r.each({slideDown:cb("show"),slideUp:cb("hide"),slideToggle:cb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Ya=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Ya=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){Za||(Za=a.requestAnimationFrame?a.requestAnimationFrame(ab):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(Za):a.clearInterval(Za),Za=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var hb,ib=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);
if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\t\r\n\f]/g;function mb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=mb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(c)+" ").replace(lb," ").indexOf(b)>-1)return!0;return!1}});var nb=/\r/g,ob=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(nb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(ob," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i<h;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,""),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=oa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=r.trim(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||pa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Na(o.pixelPosition,function(a,c){if(c)return c=Ma(a,b),Ka.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r});;
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
$(document).ready(function () {
    /*Sticky*/
    if ($('#navbar').hasClass('sticky')) {
        ('.hamburger-inner').addClass("dark");
    } else {
        $('.hamburger-inner').removeClass("dark");
    }

    /*Mobile Menu*/
    $(".hamburger").click(function () {
        $(this).toggleClass("is-active");
        $(".menu-mobile-wrap").toggleClass("is-active");
        $(".menu-mobile").toggleClass("is-active");
        $(".hamburger-inner").toggleClass("is-active");
        $("#navbar").toggleClass("is-active");
        $('#content').toggleClass("is-active");
    });
    $(window).on('load', function () {
        if ($(window).scrollTop() > 10) {
            if (!$('#navbar').hasClass('sticky')) {
                $('#navbar').addClass('sticky');
            }
        }
    });

    /*Mobile Submenu*/
    $('.menu-mobile-wrap .menu-list-item .sub-menu-link').on('click', function (e) {
        e.preventDefault();
    });
    $('.menu-mobile-wrap .menu-list-item .sub-menu-link p').on('click', function (e) {
        var $href = $(this).parent('a').attr('href');
        window.location.href = $href;
    });
    $('.menu-mobile-wrap .menu-list-item .sub-menu-link img').on('click', function (e) {
        e.preventDefault();
        $.each($('.menu-mobile-wrap .menu-list .menu-list-item'), function () {
            $(this).removeClass('active');
        });
        $(this).parents('.menu-list-item').addClass('active');

        $.each($('.menu-mobile-wrap .menu-list-item:not(.active) .menu-sub-list'), function () {
            if ($(this).hasClass('active')) {
                $(this).removeClass('active');
            }
        });
        $.each($('.menu-mobile-wrap .menu-list-item:not(.active) .sub-menu-link'), function () {
            if ($(this).hasClass('active')) {
                $(this).removeClass('active');
            }
        });
        $(this).parents('.sub-menu-link').siblings('.menu-sub-list').toggleClass('active');
        $(this).parents('.sub-menu-link').toggleClass('active');
    });
    $('.menu-mobile-wrap .menu-sub-list li').on('click', function () {
        var $coord = $(this).attr('id').replace("sub-list-", "");
        $.each($('.menu-mobile-wrap .mobile-sub-navbar'), function () {
            var $navbarCoord = $(this).attr('id').replace("sub-navbar-", "");
            if ($navbarCoord == $coord) {
                $(this).addClass('active');
                setTimeout(function () {
                    $('.menu-mobile-wrap').addClass('sub-navbar');
                    $('body').addClass('sub-navbar');
                }, 300);
            }
        });
    });
    $('.menu-mobile-wrap .mobile-sub-navbar .title').on('click', function () {
        $(this).parents('.mobile-sub-navbar').removeClass('active');
        $('.menu-mobile-wrap').removeClass('sub-navbar');
        $('body').removeClass('sub-navbar');
    });

    $('.menu-mobile-wrap .menu-list .menu-list-item .menu-sub-list a.scroll').on('click touchend', function () {
        $(this).parents('.mobile-sub-navbar').removeClass('active');
        $('.menu-mobile-wrap').removeClass('is-active');
        $('body').removeClass('is-active');
        $('.hamburger').removeClass('is-active');
    });

    /*Sticky*/
    $(window).scroll(function () {
        if ($(this).scrollTop() >= 81) {
            $('#navbar').addClass("sticky");
            $('.hamburger-inner').addClass("dark");
        } else {
            $('#navbar').removeClass("sticky");
            $('.hamburger-inner').removeClass("dark");
        }
    });

    /*Submenu*/
    $('li.menu-list-item.has-sub-menu').mouseenter(function () {
        $('#navbar').addClass('show-sub-menu');
        var $subMenu = $(this).children('.sub-menu');
        $subMenu.addClass('open');
        setTimeout(function () {
            $subMenu.css('opacity', '1');
        }, 100);
    }).mouseleave(function () {
        $('#navbar').removeClass('show-sub-menu');
        var $subMenu = $(this).children('.sub-menu');
        $subMenu.css('opacity', '0');
        setTimeout(function () {
            $subMenu.removeClass('open');
        }, 150);
    });

    /*Expand*/
    $('.expand').on('click', function (e) {
        e.preventDefault();
        $.each($('.expand'), function () {
            $(this).removeClass('clicked');
        });
        $(this).addClass('clicked');
        $.each($('.expand'), function () {
            $(this).removeClass('active');
        });
        $(this).addClass('active');
        this.expand = !this.expand;
        if ($(this).parent().parent().hasClass('content')) {
            var contentOffset = $(this).parent().parent('.content').offset().top;
            var parentOffset = $(this).parent().parent('.content').parent().offset().top;
            var diff = contentOffset - parentOffset;
            $(this).parent().parent('.content').css('margin-top', diff);
        }
        $(this).parent().toggleClass("expanded");
        var viewMore = $(this).parent().data('viewmore');
        var viewLess = $(this).parent().data('viewless');
        if ($(this).parent().hasClass('expanded')) {
            $('.expanded .expand span').text(viewLess);
        } else {
            $('.expand span').text(viewMore);
        }
        $(".expand").not(this).parent().removeClass("expanded");

        if ($(this).parent('.description-wrap').hasClass('expanded')) {
            if ($(window).width() < 500) {
                setTimeout(
                    function () {
                        window.scroll(0, $('.expand.clicked').parents('.description-wrap').offset().top - 400);
                    }, 150);
            }
            $.each($('.description'), function () {
                $(this).css('height', '0px');
                var viewMore = $(this).parent().data('viewmore');
                if (!$(this).siblings('.expand').hasClass('active')) {
                    $(this).siblings('.expand').find('span').text(viewMore);
                }
            });
            var $description = $(this).siblings('.description');
            var $contentHeight = 0;
            $description.children().each(function () {
                $contentHeight = $contentHeight + $(this).outerHeight(true);
            });
            $description.css('height', $contentHeight + 'px');
        } else {
            $(this).parent('.description-wrap').removeClass('expanded');
            $(this).siblings('.description').css('height', '0px');
            setTimeout(function () {
                $(window).scroll();
            }, 300);
        }
    });

    /*Slide up on scroll*/
    $(window).on("load", function () {
        $.each($('.slide'), function () {
            if (!isElementPartiallyInViewport($(this), 0.95) && $(this).offset().top > $(window).scrollTop()) {
                $(this).addClass('slide-hidden');
            }
        });
    });
    $(window).on('scroll', function () {
        $.each($('.slide'), function () {
            if (isElementPartiallyInViewport($(this), 0.95)) {
                $(this).removeClass('slide-hidden');
            }
        });
    });

    /*Select dropdown*/
    $(".wrapper-dropdown").click(function () {
        $(this).toggleClass('active');
        $(this).siblings().removeClass('active');
        $(this).find('.select-arrow').toggleClass('rotate');
    });

    $(".select-dropdown li").click(function () {
        $(this).addClass("active");
        $(this).siblings().removeClass("active");
    });

    $(document).on('click touchstart', function (event) {
        if (!$(event.target).closest('.wrapper-dropdown').length) {
            $(".wrapper-dropdown").removeClass("active");
            $(".wrapper-dropdown .select-arrow").removeClass("rotate");
        }
    });

    $(".wrapper-dropdown .select-dropdown li").click(function () {
        $(this).parent().siblings(".selected").html($(this).text() + ' <span class="carret"></span>');
    });

    /*Investors sidenav*/
    $(window).on('load', function () {
        $('.section-investors-nav .menu-list .sub-menu-wrapper.current').css('height', $('.section-investors-nav .menu-list .sub-menu-wrapper.current .sub-menu').outerHeight(true) + 'px');
    });
    $('.section-investors-nav .sub-menu-title img').on('click', function () {
        var $img = $(this);
        var $subMenuTitle = $img.parent('.sub-menu-title');
        var $wrapper = $subMenuTitle.siblings('.sub-menu-wrapper');
        var $subMenu = $wrapper.children('.sub-menu');

        $.each($('.section-investors-nav .menu-list .sub-menu-title'), function () {
            if ($(this).is($subMenuTitle)) {
                $subMenuTitle.toggleClass('active');
            } else {
                $(this).removeClass('active');
            }
        });
        $.each($('.section-investors-nav .menu-list .sub-menu-wrapper'), function () {
            if ($(this).is($wrapper)) {
                if ($wrapper.hasClass('active')) {
                    $wrapper.removeClass('active');
                    $wrapper.css('height', '0px');
                } else {
                    $wrapper.addClass('active');
                    $wrapper.css('height', $subMenu.outerHeight(true) + 'px');
                }
            } else {
                $(this).removeClass('active');
                $(this).css('height', '0px');
            }
            $(this).removeClass('current');
        });
        $.each($('.section-investors-nav .menu-list img'), function () {
            if ($(this).is($img)) {
                $img.toggleClass('active');
            } else {
                $(this).removeClass('active');
            }
            $(this).removeClass('current');
        });
        $.each($('.section-investors-nav .menu-list .sub-menu'), function () {
            if ($(this).is($subMenu)) {
                $subMenu.toggleClass('active');
            } else {
                $(this).removeClass('active');
            }
            $(this).removeClass('current');
        });
    });

    /*Investors sidenav fixed when scrolling*/
    var lastScrollTop = 0;
    $(window).scroll(function () {
        var $menu = $('.section-investors-nav .menu-list');
        var $wrapper = $('.section-investors-nav');

        if ($menu.length > 0 && $wrapper.length > 0) {
            var $bottomMenu = $menu.offset().top + $menu.innerHeight();
            var $bottomWrapper = $wrapper.offset().top + $wrapper.innerHeight();

            if ($bottomMenu >= $bottomWrapper) {
                if (!$menu.hasClass('absolute')) {
                    $menu.addClass('absolute');
                }
            }
            var st = $(this).scrollTop();
            if (st <= lastScrollTop) {
                var $distanceTop = $menu.offset().top - $(window).scrollTop();
                var $containerPadding = parseInt($('.container.investors').css('padding-top').replace('px', ''));
                var $navMargin = parseInt($('.section-investors-nav').css('margin-top').replace('px', ''));
                var $distance = $containerPadding + $navMargin;
                if ($distanceTop >= $distance) {
                    if ($menu.hasClass('absolute')) {
                        $menu.removeClass('absolute');
                    }
                }
            }
            lastScrollTop = st;
        }
    });

    /* Click scroll */
    $(".scroll").on("click touchend", function (e) {
        var target = $(this).attr("href");
        if ($(target).length > 0) {
            $("html, body").animate(
                {
                    scrollTop: $(target).offset().top - 90,
                },
                1000
            );
        }
    });

    /* Click Scroll from another page*/
    if (window.location.hash) {
        var hash = window.location.hash;
        if ($(hash).length > 0) {
            $("html, body").animate(
                {
                    scrollTop: $(hash).offset().top - 70,
                },
                0
            );
        }
    }

    /*Cookie notice*/
    var $cookieNotice = $('.cookie-notice');
    $cookieNotice.css('bottom', "-" + $cookieNotice.innerHeight() + "px");
    var $closeCookieButton = $('.close-cookie');
    var $acceptCookieButton = $('.accept-cookie');
    if (document.cookie.indexOf("cookiesAccepted=true") == -1) {
        setTimeout(function () {
            $cookieNotice.css('bottom', "0px");
            $cookieNotice.css('opacity', "1");
        }, 755);
    }
    $acceptCookieButton.on('click', function (e) {
        e.preventDefault();
        var expires = new Date();
        expires.setTime(expires.getTime() + 365 * 24 * 60 * 60 * 1000); // 1 year
        document.cookie =
            "cookiesAccepted=true;path=/;" + "expires=" + expires.toUTCString();

        window['ga-disable-UA-45697286-2'] = false;
        ga('gtag_UA_45697286_2.send', 'pageview', location.pathname);
        hideCookieNotice();
    });
    $closeCookieButton.on('click', function () {
        hideCookieNotice();
    });
    function hideCookieNotice() {
        var $cookieNotice = $('.cookie-notice');
        $cookieNotice.addClass('hidden');
    }

    /*Logos*/
    $('.section.logos .logo a').mouseenter(function () {
        $(this).addClass('color');
    }).mouseleave(function () {
        $(this).removeClass('color');
    });

    /* Subscribe Form */
    var $subscribeForm = $('.section.two-col-subscribe form');
    var $subscribeFormClear = $subscribeForm.find('.clear');
    $subscribeForm.on('submit', function (e) {
        e.preventDefault();
        e.stopPropagation();
        var $form = $(this);
        $(this).find('.submit').attr('disabled', 'disabled');
        let values = $(this).serialize();
        $.ajax({
            url: $(this).attr('action'),
            type: "POST",
            data: values,
            success: function (data) {
                $form.addClass('d-none');
                var responseWrapper = $form.siblings('.response-wrapper');
                responseWrapper.removeClass('d-none');
                responseWrapper.append(`<h4>${data.header}</h4>`);
                responseWrapper.append(`<p>${data.message}</p>`);
            },
            error: function (error) {
                if (error.responseJSON.errors === 'undefined') {
                    $form.find('.email').addClass('error');
                    $form.find('.email.message').removeClass('d-none');
                } else {
                    $form.addClass('d-none');
                    var responseWrapper = $form.siblings('.response-wrapper');
                    responseWrapper.removeClass('d-none');
                    responseWrapper.append(`<h4>${error.responseJSON.header}</h4>`);
                    responseWrapper.append(`<p>${error.responseJSON.message}</p>`);
                }
            }
        });
        return false;
    });

    $subscribeFormClear.on('click', function () {
        $subscribeForm.trigger("reset");
    });


    function isElementPartiallyInViewport(el, offset) {
        if (!offset) offset = 1;
        if (typeof jQuery !== "undefined" && el instanceof jQuery) el = el[0];
        if (el === undefined) return;

        var rect = el.getBoundingClientRect();
        var windowHeight =
            window.innerHeight || document.documentElement.clientHeight;
        var windowWidth =
            window.innerWidth || document.documentElement.clientWidth;

        var vertInView =
            rect.top <= windowHeight * offset && rect.top + rect.height >= 0;
        var horInView = rect.left <= windowWidth && rect.left + rect.width >= 0;

        return vertInView && horInView;
    }

    $('#get-press-releases').click(function () {
        var $section = $(".two-col-archive.press-release-archive");
        $section.find('.no-results').addClass('d-none');
        var $pressReleases = $section.find('.press-release');
        $pressReleases.removeClass('cision-visible').addClass('d-none');
        var $this = $(this);
        $this.attr('disabled', 'disabled');
        getPressReleases();
    });

    $('#get-company-press-releases').click(function () {
        var $section = $(".two-col-archive.company-press-release-archive");
        $section.find('.no-results').addClass('d-none');
        var $pressReleases = $section.find('.press-release');
        $pressReleases.removeClass('cision-visible').addClass('d-none');
        var $this = $(this);
        $this.attr('disabled', 'disabled');
        getCompanyPressReleases();
    });

    $("input#search").on("keydown", function (event) {
        if (event.which == 13) {
            var $section = $(this).closest(".two-col-archive");
            $section.find('.no-results').addClass('d-none');
            var $pressReleases = $section.find('.press-release');
            $pressReleases.removeClass('cision-visible').addClass('d-none');
            var isCompany = $section.hasClass("company-press-release-archive");
            $(`#get${isCompany ? "-company" : ""}-press-releases`).attr('disabled', 'disabled');
            if (isCompany)
                getCompanyPressReleases();
            else
                getPressReleases();
        }
    });

    $('.two-col-archive.press-release-archive').find('.link.capital').click(function () {
        showFilteredPressReleases();
    });

    $('.two-col-archive.company-press-release-archive').find('.link.capital').click(function () {
        showFilteredCompanyPressReleases();
    });

    function getPressReleases() {
        var $section = $(".two-col-archive.press-release-archive");
        const $regulatoryButton = $section.find('#styled-checkbox-5');
        const $regulatory = $regulatoryButton.is(':checked');
        const $searchBar = $section.find('#search');
        const $search = $searchBar.val();
        const $dropdown = $section.find('.select-dropdown');
        const $year = $dropdown.find('.active').text();

        const values = {
            IsRegulatory: $regulatory,
            SearchText: $search,
            Year: $year,
            Language: document.documentElement.lang,
        };

        var data = JSON.stringify(values);

        $.ajax({
            url: `/PressReleaseArchiveBlock/GetPressReleases`,
            type: "GET",
            data,
            success: function (data) {
                if (JSON.parse(data.serializedResult).length === 0) {
                    $section.find('.no-results').removeClass('d-none');
                }
                filterPressReleases(data);
                $('#get-press-releases').removeAttr('disabled');
            },
        });
    }

    function filterPressReleases(ids) {
        ids = JSON.parse(ids.serializedResult);
        var $pressReleases = $('.press-release-archive .press-release');
        $.each($pressReleases, function (key, value) {
            var $this = $(value);
            if (ids.indexOf($this.data('id')) !== -1) {
                $this.addClass('cision-visible');
            }
        });
        showFilteredPressReleases();
    }

    function showFilteredPressReleases() {
        var result = $('.press-release-archive .press-release.cision-visible.d-none:lt(6)').removeClass('d-none');
        if (result.length < 6) {
            $('.two-col-archive.press-release-archive').find('.link.capital.press-release-archive').hide();
        } else {
            $('.two-col-archive.press-release-archive').find('.link.capital.press-release-archive').show();
        }
    }


    function getCompanyPressReleases() {
        var $section = $(".two-col-archive.company-press-release-archive");
        const $searchBar = $section.find('#search');
        const $search = $searchBar.val();
        const $dropdown = $section.find('.select-dropdown');
        const $year = $dropdown.find('.active').text();

        const values = {
            SearchText: $search,
            Year: $year,
            Language: document.documentElement.lang,
        };

        var data = JSON.stringify(values);

        $.ajax({
            url: `/CompanyPressReleaseArchiveBlock/GetPressReleases`,
            type: "GET",
            data,
            success: function (data) {
                if (JSON.parse(data.serializedResult).length === 0) {
                    $section.find('.no-results').removeClass('d-none');
                }
                filterCompanyPressReleases(data);
                $('#get-company-press-releases').removeAttr('disabled');
            },
        });
    }


    function filterCompanyPressReleases(ids) {
        ids = JSON.parse(ids.serializedResult);
        var $pressReleases = $('.company-press-release-archive .press-release');
        $.each($pressReleases, function (key, value) {
            var $this = $(value);
            if (ids.indexOf($this.data('id')) !== -1) {
                $this.addClass('cision-visible');
            }
        });
        showFilteredCompanyPressReleases();
    }

    function showFilteredCompanyPressReleases() {
        var result = $('.company-press-release-archive .press-release.cision-visible.d-none:lt(6)').removeClass('d-none');
        if (result.length < 6) {
            $('.two-col-archive.company-press-release-archive').find('.link.capital.press-release-archive').hide();
        } else {
            $('.two-col-archive.company-press-release-archive').find('.link.capital.press-release-archive').show();
        }
    }

    function loadDisclaimer() {
        const $section = $(".investor-page-protected");
        const $residenceDropdown = $section.find('.wrapper-dropdown.residence');
        const $locationDropdown = $section.find('.wrapper-dropdown.location');
        const $residence = $residenceDropdown.find('.active').data('value');
        const $location = $locationDropdown.find('.active').data('value');
        const url = window.location.href;

        $.ajax({
            url: url.endsWith('/') ? url.slice(0, -1) : url,
            type: "GET",
            data: {
                residence: $residence,
                location: $location
            },
            success: function (data) {
                window.scrollTo(0, 0);
                $investorsPageProtectedSectionWrap.empty();
                var $html = $(data).find(".investor-page-protected-disclaimer");
                $investorsPageProtectedSectionWrap.html($html);
            },
        });
    }

    function disclaimerDeclined() {
        const url = window.location.href;
        var $investorsPageProtected = $(".investor-page-protected-disclaimer");
        $.ajax({
            url: url.endsWith('/') ? url.slice(0, -1) : url,
            type: "GET",
            data: {
                disclaimerAccepted: "false",
                restrictionsAccepted: "false"
            },
            success: function (data) {
                window.scrollTo(0, 0);
                $investorsPageProtected.empty();
                var $html = $(data).find(".investor-page-protected-disclaimer");
                $investorsPageProtected.html($html);
            },
        });
    }

    function disclaimerAccepted() {
        const url = window.location.href;
        $.ajax({
            url: url.endsWith('/') ? url.slice(0, -1) : url,
            type: "GET",
            data: {
                disclaimerAccepted: "yes",
                restrictionsAccepted: "yes"
            },
            success: function (data) {
                window.scrollTo(0, 0);
                $investorsPageProtected.empty();
                var $html = $(data).find(".investor-page-protected");
                $investorsPageProtected.html($html);
            },
        });
    }

    var $vacanciesArchive = $('.two-col-archive.vacancies-wrap');

    $vacanciesArchive.find('.link.capital').click(function () {
        showFilteredVacancies();
    });

    $vacanciesArchive.find('.area-dropdown li, .country-dropdown li').click(function () {
        $vacanciesArchive.find('.no-results').addClass('d-none');

        var areaValue = $(this).attr("data-area");
        var countryValue = $(this).attr("data-country");
        var area = areaValue ? $(this).text() : ($('.area-dropdown li.active').text() || "");
        var country = countryValue ? $(this).text() : ($('.country-dropdown li.active').text() || "");

        var emptyArea = $('.area-dropdown li.all').text();
        var emptyCountry = $('.country-dropdown li.all').text();

        var selector = ".vacancy";

        if (area !== emptyArea) {
            selector += "[data-area='" + area + "']";
        }

        if (country !== emptyCountry) {
            selector += "[data-country='" + country + "']";
        }

        selector += ".d-none:lt(6)";
        $vacanciesArchive.find('.vacancy').addClass('d-none');
        var result = $vacanciesArchive.find(selector).removeClass('d-none');

        if (result.length === 0) {
            $vacanciesArchive.find('.no-results').removeClass('d-none');
        }

        if (result.length < 6) {
            $vacanciesArchive.find('.link.capital').hide();
        } else {
            $vacanciesArchive.find('.link.capital').show();
        }
    });

    function showFilteredVacancies() {
        var area = $vacanciesArchive.find('.area-dropdown li.active').text();
        var country = $vacanciesArchive.find('.country-dropdown li.active').text();

        var emptyArea = $('.area-dropdown li.all').text();
        var emptyCountry = $('.country-dropdown li.all').text();

        var areaSelector = area && area !== emptyArea ? "[data-area='" + area + "']" : "";
        var countrySelector = country && country !== emptyCountry ? "[data-country='" + country + "']" : "";
        var selector = ".vacancy" + areaSelector + countrySelector + ".d-none:lt(6)";
        var result = $vacanciesArchive.find(selector).removeClass('d-none');
        if (result.length < 6) {
            $vacanciesArchive.find('.link.capital').hide();
        } else {
            $vacanciesArchive.find('.link.capital').show();
        }
    }

    var $videoArchive = $(".video-archive");
    $videoArchive.find(".view-more").click(function () {
        var result = $videoArchive.find('.d-none:lt(9)').removeClass('d-none');
        if (result.length < 9) {
            $(this).hide();
        }
    });

    var $investorsPageProtected = $(".investor-page-protected");
    var $investorsPageProtectedSectionWrap = $("#investor-protected-section-wrap");
    var $investorsPageProtectedSubmit = $investorsPageProtected.find('#disclaimer-country');
    var $locationDropdown = $('.wrapper-dropdown.location');
    var $residenceDropdown = $('.wrapper-dropdown.residence');

    $locationDropdown.find('.select-dropdown').find('li').click(() => {
        var $investorsPageProtectedSubmit = $investorsPageProtected.find('#disclaimer-country');
        var $residenceDropdownValue = $residenceDropdown.find('.active').data('value');
        if ($residenceDropdownValue !== '' && $residenceDropdownValue !== undefined) {
            $investorsPageProtectedSubmit.removeClass('disabled');
        }
    });

    $residenceDropdown.find('.select-dropdown').find('li').click(() => {
        var $investorsPageProtectedSubmit = $investorsPageProtected.find('#disclaimer-country');
        var $locationDropdownValue = $locationDropdown.find('.active').data('value');
        if ($locationDropdownValue !== '' && $locationDropdownValue !== undefined) {
            $investorsPageProtectedSubmit.removeClass('disabled');
        }
    });


    $investorsPageProtectedSubmit.click(() => {
        loadDisclaimer();
    });

    $('body').on('click', '#disclaimer-yes', (() => {
        var $disclaimerYes = $("#disclaimer-yes");
        var $restrictionWrapper = $("#restriction-wrapper");
        $disclaimerYes.data('accepted', true);
        $restrictionWrapper.removeClass('d-none');
    }));

    $('body').on('click', '#disclaimer-no', (() => {
        disclaimerDeclined();
    }));

    $('body').on('click', '#restriction-no', (() => {
        disclaimerDeclined();
    }));

    $('body').on('click', '#restriction-yes', (() => {
        var $disclaimerYes = $("#disclaimer-yes");
        if ($disclaimerYes.data('accepted') === true) {
            disclaimerAccepted();
        } else {
            disclaimerDeclined();
        }
    }));

    $investorsPageProtectedSubmit = $investorsPageProtected.find('#protected-tmp');
    $investorsPageProtectedSubmit.click(() => {
        loadDisclaimer();
    });
});

/* On load animation */
$(window).on("load", function () {
    var $nav = $('#navbar');
    var $heroText = $('.hero-header .column-text');
    var $heroLink = $('.hero-header .link');
    setTimeout(function () {
        $nav.addClass('show');
    }, 500);
    setTimeout(function () {
        $heroText.addClass('show');
        $heroLink.addClass('show');
    }, 755);
});

$(window).on('load', function () {
    var currentLanguage = $("html").attr("lang");
    (function (widgets) {
      var url = 'https://widget.datablocks.se/api/rose';
      if (!window._MF) {
        var b = document.createElement('script');
        b.type = 'text/javascript';
        b.async = true;
        b.src = url + '/assets/js/loader-v4.js';
        document.getElementsByTagName('body')[0].appendChild(b);
      }
      window._MF = window._MF || {
        data: [],
        url: url,
        ready: !!0,
        render: function () {
          window._MF.ready = !0;
        },
        push: function (w) {
          window._MF.data.push(w);
        },
      };
      window._MF.push(widgets);
    })([
      {
        query: '#insiderPositions',
        widget: 'insider-positions',
        locale: currentLanguage,
        token: 'db667058-6901-40eb-ae31-5d9cd254b23b',
      },
      {
        query: '#insiderOther',
        widget: 'insider-transactions',
        locale: currentLanguage,
        token: 'b89a4d59-24ea-4544-932e-9ae0fbc621c0',
        disableOutputCache: true,
      },
      {
        query: '#insiderTransactions',
        widget: 'insider-transactions',
        locale: currentLanguage,
        token: '37e20ca0-d862-4aa3-8cf8-912491938938',
      },
      {
        query: '#ratosBTicker',
        widget: 'stock-table',
        locale: currentLanguage,
        token: 'c19f8a48-d472-4b88-80ee-9713cd490b3e',
      },
      {
        query: '#ratosBGraph',
        widget: 'stock-chart',
        locale: currentLanguage,
        token: '5c7bb665-558f-4f62-8cdc-5a8a42566a1e',
      },
      {
        query: '#ratosBTable',
        widget: 'stock-table',
        locale: currentLanguage,
        token: 'b80f17a6-b2ff-4c58-8e9b-6826ea5ae5cf',
      },
      {
        query: '#ratosBTable2',
        widget: 'stock-table',
        locale: currentLanguage,
        token: 'b80f17a6-b2ff-4c58-8e9b-6826ea5ae5cf',
      },
      {
        query: '#ratosATicker',
        widget: 'stock-table',
        locale: currentLanguage,
        token: 'c19f8a48-d472-4b88-80ee-9713cd490b3e',
      },
      {
        query: '#ratosAGraph',
        widget: 'stock-chart',
        locale: currentLanguage,
        token: '967411f0-f840-459e-89c5-2343188d16eb',
      },
      {
        query: '#ratosATable',
        widget: 'stock-table',
        locale: currentLanguage,
        token: 'b80f17a6-b2ff-4c58-8e9b-6826ea5ae5cf',
      },
      {
        query: '#ratosATable2',
        widget: 'stock-table',
        locale: currentLanguage,
        token: 'b80f17a6-b2ff-4c58-8e9b-6826ea5ae5cf',
      },
      {
        query: '#totalReturnGraph',
        widget: 'stock-chart',
        locale: currentLanguage,
        token: '5c7bb665-558f-4f62-8cdc-5a8a42566a1e',
      },
      {
        query: '#totalReturnTable',
        widget: 'total-return-table-v2',
        locale: currentLanguage,
        token: 'ce35abb5-a677-4c1c-88a7-600d97b1cc92',
      },
      {
        query: '#dividendGraph',
        widget: 'dividend-graph',
        locale: currentLanguage,
        token: '809be6d5-7935-4b92-8f0a-43e9adc96f80',
      },
      {
        query: '#dividendTable',
        widget: 'dividend-table',
        locale: currentLanguage,
        token: 'e6d1ae9d-eb8d-4c60-864c-97cd2986dfe1',
      },
      {
        query: '#stockCalculator',
        widget: 'stock-calculator',
        locale: currentLanguage,
        token: 'a7142352-5cae-4ace-8a68-24f352ab49d3',
      },
      {
        query: '#owners',
        widget: 'owner-list',
        locale: currentLanguage,
        token: '95ff20a3-0642-4f23-85b8-7a01db2ca0a3',
      },
      {
        query: '#ownerConcentration',
        widget: 'owner-concentration',
        locale: currentLanguage,
        token: 'da3c4592-5ac8-4b57-845f-b81345fb5537',
      },
      {
        query: '#ownerCountryDistribution',
        widget: 'owner-country-dist',
        locale: currentLanguage,
        token: '8d9c3ac3-f6bb-4c72-83c1-bdf1f536acc0',
      },
      {
        query: '#ownerTypeDistribution',
        widget: 'owner-type-dist',
        locale: currentLanguage,
        token: '373d220d-c2ee-482a-86a5-8c238786f01a',
      },
      {
        query: '#analystsTable',
        widget: 'kpi-analysts',
        locale: currentLanguage,
        token: 'df99903c-6fdd-4eac-8bc4-9cd717cbf154',
      },
      {
        query: '#consensus',
        widget: 'kpi-consensus-last-updated',
        locale: currentLanguage,
        token: '8705eade-b7b1-4dff-8192-dc4745d03da1',
      },
      {
        query: '#recommendationGradient',
        widget: 'kpi-recommendations',
        locale: currentLanguage,
        token: '2dd40107-9742-4b73-8667-19bd3595a3a7',
      },
      {
        query: '#recommendations',
        widget: 'kpi-recommendations',
        locale: currentLanguage,
        token: '2dd40107-9742-4b73-8667-19bd3595a3a7',
      },
      {
        query: '#priceHistory',
        widget: 'kpi-target-price-history',
        locale: currentLanguage,
        token: 'fa12d678-e82b-4e5e-8863-8d38ac542255',
      },
      {
        query: '#estimateNetSalesQuarter',
        widget: 'kpi-graph',
        locale: currentLanguage,
        token: 'b676acc2-6050-4730-89ea-62799d5f9dc7',
      },
      {
        query: '#estimateNetSalesYear',
        widget: 'kpi-graph',
        locale: currentLanguage,
        token: '5b9ace2b-2a79-49bd-84e0-934707c91181',
      },
      {
        query: '#aktieData',
        widget: 'kpi-table-v2',
        locale: currentLanguage,
        token: '6daaf36d-950b-4eb7-8443-5faea4adda25',
      },
      {
        query: '#estimateEbitaQuarter',
        widget: 'kpi-graph',
        locale: currentLanguage,
        token: 'e822dd18-71f8-4169-86b8-9b4d1349328c',
      },
      {
        query: '#estimateEbitaYear',
        widget: 'kpi-graph',
        locale: currentLanguage,
        token: '29a41f3b-bcef-4810-9a43-2b6d1f3e37a5',
      },
      {
        query: '#kpiBusinessAreaYear',
        widget: 'kpi-table',
        locale: currentLanguage,
        token: 'f3a48993-1ac9-49de-b01a-4a05b4b11492',
      },
      {
        query: '#kpiBusinessAreaQuarter',
        widget: 'kpi-table',
        locale: currentLanguage,
        token: 'b5b151df-facf-4cef-8e3a-d51f8ac148f3',
        },
        {
        query: '#subscription',
        widget: 'subscribe-v2',
        locale: currentLanguage,
        token: '5eaaca4a-da2e-4565-8664-4c104f5413cd',
       },
       {
        query: '#keyFiguresTable',
        widget: 'kpi-table-v2',
        locale: currentLanguage,
        token: 'f56ba045-9223-46e4-826c-89d4726e2ce5',
      },
    ]);
  });
  
  // Change MFN quarterly and yearly tabs
  document.addEventListener('DOMContentLoaded', function() {
    const openWidget = (evt) => {
        const button = evt.currentTarget;
        const widget = button.getAttribute('data-widget');
        const group = button.getAttribute('data-group');
        
        let i, tabcontent, tablinks;
        
        tabcontent = document.querySelectorAll(`.mfn-tabs.${group} .tabcontent`);
        for (i = 0; i < tabcontent.length; i++) {
            tabcontent[i].style.display = 'none';
        }
        
        tablinks = document.querySelectorAll(`.mfn-tabs.${group} .tablinks`);
        for (i = 0; i < tablinks.length; i++) {
            tablinks[i].classList.remove('active');
        }
        
        document.getElementById(widget).style.display = 'block';
        button.classList.add('active');
    };

    // Add event listeners to all elements with the "tablinks" class
    const tablinks = document.querySelectorAll('.tablinks');
    tablinks.forEach(function(button) {
        button.addEventListener('click', openWidget);
    });
});
  
  // Show Total Return in graph
  function elementAddedCallback(mutationsList, observer) {
    for (const mutation of mutationsList) {
      if (mutation.type === 'childList') {
        const addedNodes = Array.from(mutation.addedNodes);
        if (
          addedNodes.some(
            (node) =>
              node.id === 'mf_stockChart-5c7bb665-558f-4f62-8cdc-5a8a42566a1e'
          )
        ) {
          setTimeout(handleTimeout(), 200);
        } else {
          continue;
        }
  
        // console.log(addedNodes);
      }
    }
  }

  function handleTimeout() {
    if (document.getElementById('totalReturnGraph')) {
        const button = document
        .getElementById('totalReturnGraph')
        .getElementsByClassName(
          'buttons check-show-return showBtn checkable'
        )[0];
        const callBack = MF_stockChart['5c7bb665-558f-4f62-8cdc-5a8a42566a1e'].setReturn;
        toggleBtn(button, callBack);
    }
  }

  function toggleBtn(btn, callback) {
    var res = btn.classList.add('checked');
    callback(btn, true);
    btn.blur();
    return res;
  }

  document.addEventListener('DOMContentLoaded', function () {
    const observer = new MutationObserver(elementAddedCallback);
    observer.observe(document.body, { childList: true, subtree: true });
  });

  document.addEventListener('DOMContentLoaded', function() {

  const clearValueButton = document.getElementById('clearValue');
  clearValueButton.addEventListener('click', clearValue);

function clearValue() {
    document.getElementsByClassName(
        'mfn-field-input mfn-field-address'
    )[0].value = '';
    document
        .getElementsByClassName('mfn-sub-submit')[0]
        .setAttribute('disabled', true);
    }
});
},{}]},{},[1])
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJTdGF0aWMvanMvc3JjL21haW4uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuICAgIC8qU3RpY2t5Ki9cclxuICAgIGlmICgkKCcjbmF2YmFyJykuaGFzQ2xhc3MoJ3N0aWNreScpKSB7XHJcbiAgICAgICAgKCcuaGFtYnVyZ2VyLWlubmVyJykuYWRkQ2xhc3MoXCJkYXJrXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICAkKCcuaGFtYnVyZ2VyLWlubmVyJykucmVtb3ZlQ2xhc3MoXCJkYXJrXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qTW9iaWxlIE1lbnUqL1xyXG4gICAgJChcIi5oYW1idXJnZXJcIikuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoXCJpcy1hY3RpdmVcIik7XHJcbiAgICAgICAgJChcIi5tZW51LW1vYmlsZS13cmFwXCIpLnRvZ2dsZUNsYXNzKFwiaXMtYWN0aXZlXCIpO1xyXG4gICAgICAgICQoXCIubWVudS1tb2JpbGVcIikudG9nZ2xlQ2xhc3MoXCJpcy1hY3RpdmVcIik7XHJcbiAgICAgICAgJChcIi5oYW1idXJnZXItaW5uZXJcIikudG9nZ2xlQ2xhc3MoXCJpcy1hY3RpdmVcIik7XHJcbiAgICAgICAgJChcIiNuYXZiYXJcIikudG9nZ2xlQ2xhc3MoXCJpcy1hY3RpdmVcIik7XHJcbiAgICAgICAgJCgnI2NvbnRlbnQnKS50b2dnbGVDbGFzcyhcImlzLWFjdGl2ZVwiKTtcclxuICAgIH0pO1xyXG4gICAgJCh3aW5kb3cpLm9uKCdsb2FkJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPiAxMCkge1xyXG4gICAgICAgICAgICBpZiAoISQoJyNuYXZiYXInKS5oYXNDbGFzcygnc3RpY2t5JykpIHtcclxuICAgICAgICAgICAgICAgICQoJyNuYXZiYXInKS5hZGRDbGFzcygnc3RpY2t5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvKk1vYmlsZSBTdWJtZW51Ki9cclxuICAgICQoJy5tZW51LW1vYmlsZS13cmFwIC5tZW51LWxpc3QtaXRlbSAuc3ViLW1lbnUtbGluaycpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfSk7XHJcbiAgICAkKCcubWVudS1tb2JpbGUtd3JhcCAubWVudS1saXN0LWl0ZW0gLnN1Yi1tZW51LWxpbmsgcCcpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgdmFyICRocmVmID0gJCh0aGlzKS5wYXJlbnQoJ2EnKS5hdHRyKCdocmVmJyk7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAkaHJlZjtcclxuICAgIH0pO1xyXG4gICAgJCgnLm1lbnUtbW9iaWxlLXdyYXAgLm1lbnUtbGlzdC1pdGVtIC5zdWItbWVudS1saW5rIGltZycpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICQuZWFjaCgkKCcubWVudS1tb2JpbGUtd3JhcCAubWVudS1saXN0IC5tZW51LWxpc3QtaXRlbScpLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgICQodGhpcykucGFyZW50cygnLm1lbnUtbGlzdC1pdGVtJykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xyXG5cclxuICAgICAgICAkLmVhY2goJCgnLm1lbnUtbW9iaWxlLXdyYXAgLm1lbnUtbGlzdC1pdGVtOm5vdCguYWN0aXZlKSAubWVudS1zdWItbGlzdCcpLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdhY3RpdmUnKSkge1xyXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICAkLmVhY2goJCgnLm1lbnUtbW9iaWxlLXdyYXAgLm1lbnUtbGlzdC1pdGVtOm5vdCguYWN0aXZlKSAuc3ViLW1lbnUtbGluaycpLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdhY3RpdmUnKSkge1xyXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICAkKHRoaXMpLnBhcmVudHMoJy5zdWItbWVudS1saW5rJykuc2libGluZ3MoJy5tZW51LXN1Yi1saXN0JykudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICQodGhpcykucGFyZW50cygnLnN1Yi1tZW51LWxpbmsnKS50b2dnbGVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICB9KTtcclxuICAgICQoJy5tZW51LW1vYmlsZS13cmFwIC5tZW51LXN1Yi1saXN0IGxpJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciAkY29vcmQgPSAkKHRoaXMpLmF0dHIoJ2lkJykucmVwbGFjZShcInN1Yi1saXN0LVwiLCBcIlwiKTtcclxuICAgICAgICAkLmVhY2goJCgnLm1lbnUtbW9iaWxlLXdyYXAgLm1vYmlsZS1zdWItbmF2YmFyJyksIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyICRuYXZiYXJDb29yZCA9ICQodGhpcykuYXR0cignaWQnKS5yZXBsYWNlKFwic3ViLW5hdmJhci1cIiwgXCJcIik7XHJcbiAgICAgICAgICAgIGlmICgkbmF2YmFyQ29vcmQgPT0gJGNvb3JkKSB7XHJcbiAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICQoJy5tZW51LW1vYmlsZS13cmFwJykuYWRkQ2xhc3MoJ3N1Yi1uYXZiYXInKTtcclxuICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ3N1Yi1uYXZiYXInKTtcclxuICAgICAgICAgICAgICAgIH0sIDMwMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgJCgnLm1lbnUtbW9iaWxlLXdyYXAgLm1vYmlsZS1zdWItbmF2YmFyIC50aXRsZScpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkKHRoaXMpLnBhcmVudHMoJy5tb2JpbGUtc3ViLW5hdmJhcicpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAkKCcubWVudS1tb2JpbGUtd3JhcCcpLnJlbW92ZUNsYXNzKCdzdWItbmF2YmFyJyk7XHJcbiAgICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCdzdWItbmF2YmFyJyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkKCcubWVudS1tb2JpbGUtd3JhcCAubWVudS1saXN0IC5tZW51LWxpc3QtaXRlbSAubWVudS1zdWItbGlzdCBhLnNjcm9sbCcpLm9uKCdjbGljayB0b3VjaGVuZCcsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkKHRoaXMpLnBhcmVudHMoJy5tb2JpbGUtc3ViLW5hdmJhcicpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAkKCcubWVudS1tb2JpbGUtd3JhcCcpLnJlbW92ZUNsYXNzKCdpcy1hY3RpdmUnKTtcclxuICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ2lzLWFjdGl2ZScpO1xyXG4gICAgICAgICQoJy5oYW1idXJnZXInKS5yZW1vdmVDbGFzcygnaXMtYWN0aXZlJyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvKlN0aWNreSovXHJcbiAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAoJCh0aGlzKS5zY3JvbGxUb3AoKSA+PSA4MSkge1xyXG4gICAgICAgICAgICAkKCcjbmF2YmFyJykuYWRkQ2xhc3MoXCJzdGlja3lcIik7XHJcbiAgICAgICAgICAgICQoJy5oYW1idXJnZXItaW5uZXInKS5hZGRDbGFzcyhcImRhcmtcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJCgnI25hdmJhcicpLnJlbW92ZUNsYXNzKFwic3RpY2t5XCIpO1xyXG4gICAgICAgICAgICAkKCcuaGFtYnVyZ2VyLWlubmVyJykucmVtb3ZlQ2xhc3MoXCJkYXJrXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8qU3VibWVudSovXHJcbiAgICAkKCdsaS5tZW51LWxpc3QtaXRlbS5oYXMtc3ViLW1lbnUnKS5tb3VzZWVudGVyKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkKCcjbmF2YmFyJykuYWRkQ2xhc3MoJ3Nob3ctc3ViLW1lbnUnKTtcclxuICAgICAgICB2YXIgJHN1Yk1lbnUgPSAkKHRoaXMpLmNoaWxkcmVuKCcuc3ViLW1lbnUnKTtcclxuICAgICAgICAkc3ViTWVudS5hZGRDbGFzcygnb3BlbicpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAkc3ViTWVudS5jc3MoJ29wYWNpdHknLCAnMScpO1xyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICB9KS5tb3VzZWxlYXZlKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkKCcjbmF2YmFyJykucmVtb3ZlQ2xhc3MoJ3Nob3ctc3ViLW1lbnUnKTtcclxuICAgICAgICB2YXIgJHN1Yk1lbnUgPSAkKHRoaXMpLmNoaWxkcmVuKCcuc3ViLW1lbnUnKTtcclxuICAgICAgICAkc3ViTWVudS5jc3MoJ29wYWNpdHknLCAnMCcpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAkc3ViTWVudS5yZW1vdmVDbGFzcygnb3BlbicpO1xyXG4gICAgICAgIH0sIDE1MCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvKkV4cGFuZCovXHJcbiAgICAkKCcuZXhwYW5kJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgJC5lYWNoKCQoJy5leHBhbmQnKSwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdjbGlja2VkJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnY2xpY2tlZCcpO1xyXG4gICAgICAgICQuZWFjaCgkKCcuZXhwYW5kJyksIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgdGhpcy5leHBhbmQgPSAhdGhpcy5leHBhbmQ7XHJcbiAgICAgICAgaWYgKCQodGhpcykucGFyZW50KCkucGFyZW50KCkuaGFzQ2xhc3MoJ2NvbnRlbnQnKSkge1xyXG4gICAgICAgICAgICB2YXIgY29udGVudE9mZnNldCA9ICQodGhpcykucGFyZW50KCkucGFyZW50KCcuY29udGVudCcpLm9mZnNldCgpLnRvcDtcclxuICAgICAgICAgICAgdmFyIHBhcmVudE9mZnNldCA9ICQodGhpcykucGFyZW50KCkucGFyZW50KCcuY29udGVudCcpLnBhcmVudCgpLm9mZnNldCgpLnRvcDtcclxuICAgICAgICAgICAgdmFyIGRpZmYgPSBjb250ZW50T2Zmc2V0IC0gcGFyZW50T2Zmc2V0O1xyXG4gICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLnBhcmVudCgnLmNvbnRlbnQnKS5jc3MoJ21hcmdpbi10b3AnLCBkaWZmKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJCh0aGlzKS5wYXJlbnQoKS50b2dnbGVDbGFzcyhcImV4cGFuZGVkXCIpO1xyXG4gICAgICAgIHZhciB2aWV3TW9yZSA9ICQodGhpcykucGFyZW50KCkuZGF0YSgndmlld21vcmUnKTtcclxuICAgICAgICB2YXIgdmlld0xlc3MgPSAkKHRoaXMpLnBhcmVudCgpLmRhdGEoJ3ZpZXdsZXNzJyk7XHJcbiAgICAgICAgaWYgKCQodGhpcykucGFyZW50KCkuaGFzQ2xhc3MoJ2V4cGFuZGVkJykpIHtcclxuICAgICAgICAgICAgJCgnLmV4cGFuZGVkIC5leHBhbmQgc3BhbicpLnRleHQodmlld0xlc3MpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICQoJy5leHBhbmQgc3BhbicpLnRleHQodmlld01vcmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAkKFwiLmV4cGFuZFwiKS5ub3QodGhpcykucGFyZW50KCkucmVtb3ZlQ2xhc3MoXCJleHBhbmRlZFwiKTtcclxuXHJcbiAgICAgICAgaWYgKCQodGhpcykucGFyZW50KCcuZGVzY3JpcHRpb24td3JhcCcpLmhhc0NsYXNzKCdleHBhbmRlZCcpKSB7XHJcbiAgICAgICAgICAgIGlmICgkKHdpbmRvdykud2lkdGgoKSA8IDUwMCkge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChcclxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoMCwgJCgnLmV4cGFuZC5jbGlja2VkJykucGFyZW50cygnLmRlc2NyaXB0aW9uLXdyYXAnKS5vZmZzZXQoKS50b3AgLSA0MDApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIDE1MCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJC5lYWNoKCQoJy5kZXNjcmlwdGlvbicpLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAkKHRoaXMpLmNzcygnaGVpZ2h0JywgJzBweCcpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHZpZXdNb3JlID0gJCh0aGlzKS5wYXJlbnQoKS5kYXRhKCd2aWV3bW9yZScpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCEkKHRoaXMpLnNpYmxpbmdzKCcuZXhwYW5kJykuaGFzQ2xhc3MoJ2FjdGl2ZScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5zaWJsaW5ncygnLmV4cGFuZCcpLmZpbmQoJ3NwYW4nKS50ZXh0KHZpZXdNb3JlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHZhciAkZGVzY3JpcHRpb24gPSAkKHRoaXMpLnNpYmxpbmdzKCcuZGVzY3JpcHRpb24nKTtcclxuICAgICAgICAgICAgdmFyICRjb250ZW50SGVpZ2h0ID0gMDtcclxuICAgICAgICAgICAgJGRlc2NyaXB0aW9uLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAkY29udGVudEhlaWdodCA9ICRjb250ZW50SGVpZ2h0ICsgJCh0aGlzKS5vdXRlckhlaWdodCh0cnVlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICRkZXNjcmlwdGlvbi5jc3MoJ2hlaWdodCcsICRjb250ZW50SGVpZ2h0ICsgJ3B4Jyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnQoJy5kZXNjcmlwdGlvbi13cmFwJykucmVtb3ZlQ2xhc3MoJ2V4cGFuZGVkJyk7XHJcbiAgICAgICAgICAgICQodGhpcykuc2libGluZ3MoJy5kZXNjcmlwdGlvbicpLmNzcygnaGVpZ2h0JywgJzBweCcpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICQod2luZG93KS5zY3JvbGwoKTtcclxuICAgICAgICAgICAgfSwgMzAwKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvKlNsaWRlIHVwIG9uIHNjcm9sbCovXHJcbiAgICAkKHdpbmRvdykub24oXCJsb2FkXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkLmVhY2goJCgnLnNsaWRlJyksIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKCFpc0VsZW1lbnRQYXJ0aWFsbHlJblZpZXdwb3J0KCQodGhpcyksIDAuOTUpICYmICQodGhpcykub2Zmc2V0KCkudG9wID4gJCh3aW5kb3cpLnNjcm9sbFRvcCgpKSB7XHJcbiAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdzbGlkZS1oaWRkZW4nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICAkKHdpbmRvdykub24oJ3Njcm9sbCcsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkLmVhY2goJCgnLnNsaWRlJyksIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKGlzRWxlbWVudFBhcnRpYWxseUluVmlld3BvcnQoJCh0aGlzKSwgMC45NSkpIHtcclxuICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ3NsaWRlLWhpZGRlbicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvKlNlbGVjdCBkcm9wZG93biovXHJcbiAgICAkKFwiLndyYXBwZXItZHJvcGRvd25cIikuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICQodGhpcykuc2libGluZ3MoKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgJCh0aGlzKS5maW5kKCcuc2VsZWN0LWFycm93JykudG9nZ2xlQ2xhc3MoJ3JvdGF0ZScpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJChcIi5zZWxlY3QtZHJvcGRvd24gbGlcIikuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICQodGhpcykuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgJCh0aGlzKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrIHRvdWNoc3RhcnQnLCBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCcud3JhcHBlci1kcm9wZG93bicpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAkKFwiLndyYXBwZXItZHJvcGRvd25cIikucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgICAgICQoXCIud3JhcHBlci1kcm9wZG93biAuc2VsZWN0LWFycm93XCIpLnJlbW92ZUNsYXNzKFwicm90YXRlXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgICQoXCIud3JhcHBlci1kcm9wZG93biAuc2VsZWN0LWRyb3Bkb3duIGxpXCIpLmNsaWNrKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkKHRoaXMpLnBhcmVudCgpLnNpYmxpbmdzKFwiLnNlbGVjdGVkXCIpLmh0bWwoJCh0aGlzKS50ZXh0KCkgKyAnIDxzcGFuIGNsYXNzPVwiY2FycmV0XCI+PC9zcGFuPicpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLypJbnZlc3RvcnMgc2lkZW5hdiovXHJcbiAgICAkKHdpbmRvdykub24oJ2xvYWQnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJCgnLnNlY3Rpb24taW52ZXN0b3JzLW5hdiAubWVudS1saXN0IC5zdWItbWVudS13cmFwcGVyLmN1cnJlbnQnKS5jc3MoJ2hlaWdodCcsICQoJy5zZWN0aW9uLWludmVzdG9ycy1uYXYgLm1lbnUtbGlzdCAuc3ViLW1lbnUtd3JhcHBlci5jdXJyZW50IC5zdWItbWVudScpLm91dGVySGVpZ2h0KHRydWUpICsgJ3B4Jyk7XHJcbiAgICB9KTtcclxuICAgICQoJy5zZWN0aW9uLWludmVzdG9ycy1uYXYgLnN1Yi1tZW51LXRpdGxlIGltZycpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgJGltZyA9ICQodGhpcyk7XHJcbiAgICAgICAgdmFyICRzdWJNZW51VGl0bGUgPSAkaW1nLnBhcmVudCgnLnN1Yi1tZW51LXRpdGxlJyk7XHJcbiAgICAgICAgdmFyICR3cmFwcGVyID0gJHN1Yk1lbnVUaXRsZS5zaWJsaW5ncygnLnN1Yi1tZW51LXdyYXBwZXInKTtcclxuICAgICAgICB2YXIgJHN1Yk1lbnUgPSAkd3JhcHBlci5jaGlsZHJlbignLnN1Yi1tZW51Jyk7XHJcblxyXG4gICAgICAgICQuZWFjaCgkKCcuc2VjdGlvbi1pbnZlc3RvcnMtbmF2IC5tZW51LWxpc3QgLnN1Yi1tZW51LXRpdGxlJyksIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKCQodGhpcykuaXMoJHN1Yk1lbnVUaXRsZSkpIHtcclxuICAgICAgICAgICAgICAgICRzdWJNZW51VGl0bGUudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICAkLmVhY2goJCgnLnNlY3Rpb24taW52ZXN0b3JzLW5hdiAubWVudS1saXN0IC5zdWItbWVudS13cmFwcGVyJyksIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKCQodGhpcykuaXMoJHdyYXBwZXIpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoJHdyYXBwZXIuaGFzQ2xhc3MoJ2FjdGl2ZScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJHdyYXBwZXIucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICR3cmFwcGVyLmNzcygnaGVpZ2h0JywgJzBweCcpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAkd3JhcHBlci5hZGRDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgJHdyYXBwZXIuY3NzKCdoZWlnaHQnLCAkc3ViTWVudS5vdXRlckhlaWdodCh0cnVlKSArICdweCcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgICAgICAkKHRoaXMpLmNzcygnaGVpZ2h0JywgJzBweCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2N1cnJlbnQnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAkLmVhY2goJCgnLnNlY3Rpb24taW52ZXN0b3JzLW5hdiAubWVudS1saXN0IGltZycpLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICgkKHRoaXMpLmlzKCRpbWcpKSB7XHJcbiAgICAgICAgICAgICAgICAkaW1nLnRvZ2dsZUNsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2N1cnJlbnQnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAkLmVhY2goJCgnLnNlY3Rpb24taW52ZXN0b3JzLW5hdiAubWVudS1saXN0IC5zdWItbWVudScpLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICgkKHRoaXMpLmlzKCRzdWJNZW51KSkge1xyXG4gICAgICAgICAgICAgICAgJHN1Yk1lbnUudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnY3VycmVudCcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLypJbnZlc3RvcnMgc2lkZW5hdiBmaXhlZCB3aGVuIHNjcm9sbGluZyovXHJcbiAgICB2YXIgbGFzdFNjcm9sbFRvcCA9IDA7XHJcbiAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgJG1lbnUgPSAkKCcuc2VjdGlvbi1pbnZlc3RvcnMtbmF2IC5tZW51LWxpc3QnKTtcclxuICAgICAgICB2YXIgJHdyYXBwZXIgPSAkKCcuc2VjdGlvbi1pbnZlc3RvcnMtbmF2Jyk7XHJcblxyXG4gICAgICAgIGlmICgkbWVudS5sZW5ndGggPiAwICYmICR3cmFwcGVyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdmFyICRib3R0b21NZW51ID0gJG1lbnUub2Zmc2V0KCkudG9wICsgJG1lbnUuaW5uZXJIZWlnaHQoKTtcclxuICAgICAgICAgICAgdmFyICRib3R0b21XcmFwcGVyID0gJHdyYXBwZXIub2Zmc2V0KCkudG9wICsgJHdyYXBwZXIuaW5uZXJIZWlnaHQoKTtcclxuXHJcbiAgICAgICAgICAgIGlmICgkYm90dG9tTWVudSA+PSAkYm90dG9tV3JhcHBlcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKCEkbWVudS5oYXNDbGFzcygnYWJzb2x1dGUnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICRtZW51LmFkZENsYXNzKCdhYnNvbHV0ZScpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBzdCA9ICQodGhpcykuc2Nyb2xsVG9wKCk7XHJcbiAgICAgICAgICAgIGlmIChzdCA8PSBsYXN0U2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgJGRpc3RhbmNlVG9wID0gJG1lbnUub2Zmc2V0KCkudG9wIC0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpO1xyXG4gICAgICAgICAgICAgICAgdmFyICRjb250YWluZXJQYWRkaW5nID0gcGFyc2VJbnQoJCgnLmNvbnRhaW5lci5pbnZlc3RvcnMnKS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgICAgICAgICAgICAgdmFyICRuYXZNYXJnaW4gPSBwYXJzZUludCgkKCcuc2VjdGlvbi1pbnZlc3RvcnMtbmF2JykuY3NzKCdtYXJnaW4tdG9wJykucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgICAgICAgICAgICAgdmFyICRkaXN0YW5jZSA9ICRjb250YWluZXJQYWRkaW5nICsgJG5hdk1hcmdpbjtcclxuICAgICAgICAgICAgICAgIGlmICgkZGlzdGFuY2VUb3AgPj0gJGRpc3RhbmNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRtZW51Lmhhc0NsYXNzKCdhYnNvbHV0ZScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRtZW51LnJlbW92ZUNsYXNzKCdhYnNvbHV0ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0U2Nyb2xsVG9wID0gc3Q7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLyogQ2xpY2sgc2Nyb2xsICovXHJcbiAgICAkKFwiLnNjcm9sbFwiKS5vbihcImNsaWNrIHRvdWNoZW5kXCIsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgdmFyIHRhcmdldCA9ICQodGhpcykuYXR0cihcImhyZWZcIik7XHJcbiAgICAgICAgaWYgKCQodGFyZ2V0KS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICQoXCJodG1sLCBib2R5XCIpLmFuaW1hdGUoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiAkKHRhcmdldCkub2Zmc2V0KCkudG9wIC0gOTAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgMTAwMFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8qIENsaWNrIFNjcm9sbCBmcm9tIGFub3RoZXIgcGFnZSovXHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhhc2gpIHtcclxuICAgICAgICB2YXIgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xyXG4gICAgICAgIGlmICgkKGhhc2gpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgJChcImh0bWwsIGJvZHlcIikuYW5pbWF0ZShcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb3A6ICQoaGFzaCkub2Zmc2V0KCkudG9wIC0gNzAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgMFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKkNvb2tpZSBub3RpY2UqL1xyXG4gICAgdmFyICRjb29raWVOb3RpY2UgPSAkKCcuY29va2llLW5vdGljZScpO1xyXG4gICAgJGNvb2tpZU5vdGljZS5jc3MoJ2JvdHRvbScsIFwiLVwiICsgJGNvb2tpZU5vdGljZS5pbm5lckhlaWdodCgpICsgXCJweFwiKTtcclxuICAgIHZhciAkY2xvc2VDb29raWVCdXR0b24gPSAkKCcuY2xvc2UtY29va2llJyk7XHJcbiAgICB2YXIgJGFjY2VwdENvb2tpZUJ1dHRvbiA9ICQoJy5hY2NlcHQtY29va2llJyk7XHJcbiAgICBpZiAoZG9jdW1lbnQuY29va2llLmluZGV4T2YoXCJjb29raWVzQWNjZXB0ZWQ9dHJ1ZVwiKSA9PSAtMSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAkY29va2llTm90aWNlLmNzcygnYm90dG9tJywgXCIwcHhcIik7XHJcbiAgICAgICAgICAgICRjb29raWVOb3RpY2UuY3NzKCdvcGFjaXR5JywgXCIxXCIpO1xyXG4gICAgICAgIH0sIDc1NSk7XHJcbiAgICB9XHJcbiAgICAkYWNjZXB0Q29va2llQnV0dG9uLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHZhciBleHBpcmVzID0gbmV3IERhdGUoKTtcclxuICAgICAgICBleHBpcmVzLnNldFRpbWUoZXhwaXJlcy5nZXRUaW1lKCkgKyAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwKTsgLy8gMSB5ZWFyXHJcbiAgICAgICAgZG9jdW1lbnQuY29va2llID1cclxuICAgICAgICAgICAgXCJjb29raWVzQWNjZXB0ZWQ9dHJ1ZTtwYXRoPS87XCIgKyBcImV4cGlyZXM9XCIgKyBleHBpcmVzLnRvVVRDU3RyaW5nKCk7XHJcblxyXG4gICAgICAgIHdpbmRvd1snZ2EtZGlzYWJsZS1VQS00NTY5NzI4Ni0yJ10gPSBmYWxzZTtcclxuICAgICAgICBnYSgnZ3RhZ19VQV80NTY5NzI4Nl8yLnNlbmQnLCAncGFnZXZpZXcnLCBsb2NhdGlvbi5wYXRobmFtZSk7XHJcbiAgICAgICAgaGlkZUNvb2tpZU5vdGljZSgpO1xyXG4gICAgfSk7XHJcbiAgICAkY2xvc2VDb29raWVCdXR0b24ub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGhpZGVDb29raWVOb3RpY2UoKTtcclxuICAgIH0pO1xyXG4gICAgZnVuY3Rpb24gaGlkZUNvb2tpZU5vdGljZSgpIHtcclxuICAgICAgICB2YXIgJGNvb2tpZU5vdGljZSA9ICQoJy5jb29raWUtbm90aWNlJyk7XHJcbiAgICAgICAgJGNvb2tpZU5vdGljZS5hZGRDbGFzcygnaGlkZGVuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLypMb2dvcyovXHJcbiAgICAkKCcuc2VjdGlvbi5sb2dvcyAubG9nbyBhJykubW91c2VlbnRlcihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnY29sb3InKTtcclxuICAgIH0pLm1vdXNlbGVhdmUoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2NvbG9yJyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvKiBTdWJzY3JpYmUgRm9ybSAqL1xyXG4gICAgdmFyICRzdWJzY3JpYmVGb3JtID0gJCgnLnNlY3Rpb24udHdvLWNvbC1zdWJzY3JpYmUgZm9ybScpO1xyXG4gICAgdmFyICRzdWJzY3JpYmVGb3JtQ2xlYXIgPSAkc3Vic2NyaWJlRm9ybS5maW5kKCcuY2xlYXInKTtcclxuICAgICRzdWJzY3JpYmVGb3JtLm9uKCdzdWJtaXQnLCBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIHZhciAkZm9ybSA9ICQodGhpcyk7XHJcbiAgICAgICAgJCh0aGlzKS5maW5kKCcuc3VibWl0JykuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcclxuICAgICAgICBsZXQgdmFsdWVzID0gJCh0aGlzKS5zZXJpYWxpemUoKTtcclxuICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICB1cmw6ICQodGhpcykuYXR0cignYWN0aW9uJyksXHJcbiAgICAgICAgICAgIHR5cGU6IFwiUE9TVFwiLFxyXG4gICAgICAgICAgICBkYXRhOiB2YWx1ZXMsXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAkZm9ybS5hZGRDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2VXcmFwcGVyID0gJGZvcm0uc2libGluZ3MoJy5yZXNwb25zZS13cmFwcGVyJyk7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZVdyYXBwZXIucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VXcmFwcGVyLmFwcGVuZChgPGg0PiR7ZGF0YS5oZWFkZXJ9PC9oND5gKTtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlV3JhcHBlci5hcHBlbmQoYDxwPiR7ZGF0YS5tZXNzYWdlfTwvcD5gKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yLnJlc3BvbnNlSlNPTi5lcnJvcnMgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGZvcm0uZmluZCgnLmVtYWlsJykuYWRkQ2xhc3MoJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgJGZvcm0uZmluZCgnLmVtYWlsLm1lc3NhZ2UnKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICRmb3JtLmFkZENsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2VXcmFwcGVyID0gJGZvcm0uc2libGluZ3MoJy5yZXNwb25zZS13cmFwcGVyJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VXcmFwcGVyLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVdyYXBwZXIuYXBwZW5kKGA8aDQ+JHtlcnJvci5yZXNwb25zZUpTT04uaGVhZGVyfTwvaDQ+YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VXcmFwcGVyLmFwcGVuZChgPHA+JHtlcnJvci5yZXNwb25zZUpTT04ubWVzc2FnZX08L3A+YCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc3Vic2NyaWJlRm9ybUNsZWFyLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkc3Vic2NyaWJlRm9ybS50cmlnZ2VyKFwicmVzZXRcIik7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgZnVuY3Rpb24gaXNFbGVtZW50UGFydGlhbGx5SW5WaWV3cG9ydChlbCwgb2Zmc2V0KSB7XHJcbiAgICAgICAgaWYgKCFvZmZzZXQpIG9mZnNldCA9IDE7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBqUXVlcnkgIT09IFwidW5kZWZpbmVkXCIgJiYgZWwgaW5zdGFuY2VvZiBqUXVlcnkpIGVsID0gZWxbMF07XHJcbiAgICAgICAgaWYgKGVsID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgdmFyIHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICB2YXIgd2luZG93SGVpZ2h0ID1cclxuICAgICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgdmFyIHdpbmRvd1dpZHRoID1cclxuICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xyXG5cclxuICAgICAgICB2YXIgdmVydEluVmlldyA9XHJcbiAgICAgICAgICAgIHJlY3QudG9wIDw9IHdpbmRvd0hlaWdodCAqIG9mZnNldCAmJiByZWN0LnRvcCArIHJlY3QuaGVpZ2h0ID49IDA7XHJcbiAgICAgICAgdmFyIGhvckluVmlldyA9IHJlY3QubGVmdCA8PSB3aW5kb3dXaWR0aCAmJiByZWN0LmxlZnQgKyByZWN0LndpZHRoID49IDA7XHJcblxyXG4gICAgICAgIHJldHVybiB2ZXJ0SW5WaWV3ICYmIGhvckluVmlldztcclxuICAgIH1cclxuXHJcbiAgICAkKCcjZ2V0LXByZXNzLXJlbGVhc2VzJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciAkc2VjdGlvbiA9ICQoXCIudHdvLWNvbC1hcmNoaXZlLnByZXNzLXJlbGVhc2UtYXJjaGl2ZVwiKTtcclxuICAgICAgICAkc2VjdGlvbi5maW5kKCcubm8tcmVzdWx0cycpLmFkZENsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICB2YXIgJHByZXNzUmVsZWFzZXMgPSAkc2VjdGlvbi5maW5kKCcucHJlc3MtcmVsZWFzZScpO1xyXG4gICAgICAgICRwcmVzc1JlbGVhc2VzLnJlbW92ZUNsYXNzKCdjaXNpb24tdmlzaWJsZScpLmFkZENsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpO1xyXG4gICAgICAgICR0aGlzLmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XHJcbiAgICAgICAgZ2V0UHJlc3NSZWxlYXNlcygpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJCgnI2dldC1jb21wYW55LXByZXNzLXJlbGVhc2VzJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciAkc2VjdGlvbiA9ICQoXCIudHdvLWNvbC1hcmNoaXZlLmNvbXBhbnktcHJlc3MtcmVsZWFzZS1hcmNoaXZlXCIpO1xyXG4gICAgICAgICRzZWN0aW9uLmZpbmQoJy5uby1yZXN1bHRzJykuYWRkQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgIHZhciAkcHJlc3NSZWxlYXNlcyA9ICRzZWN0aW9uLmZpbmQoJy5wcmVzcy1yZWxlYXNlJyk7XHJcbiAgICAgICAgJHByZXNzUmVsZWFzZXMucmVtb3ZlQ2xhc3MoJ2Npc2lvbi12aXNpYmxlJykuYWRkQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XHJcbiAgICAgICAgJHRoaXMuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcclxuICAgICAgICBnZXRDb21wYW55UHJlc3NSZWxlYXNlcygpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJChcImlucHV0I3NlYXJjaFwiKS5vbihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09IDEzKSB7XHJcbiAgICAgICAgICAgIHZhciAkc2VjdGlvbiA9ICQodGhpcykuY2xvc2VzdChcIi50d28tY29sLWFyY2hpdmVcIik7XHJcbiAgICAgICAgICAgICRzZWN0aW9uLmZpbmQoJy5uby1yZXN1bHRzJykuYWRkQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgICB2YXIgJHByZXNzUmVsZWFzZXMgPSAkc2VjdGlvbi5maW5kKCcucHJlc3MtcmVsZWFzZScpO1xyXG4gICAgICAgICAgICAkcHJlc3NSZWxlYXNlcy5yZW1vdmVDbGFzcygnY2lzaW9uLXZpc2libGUnKS5hZGRDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgICAgIHZhciBpc0NvbXBhbnkgPSAkc2VjdGlvbi5oYXNDbGFzcyhcImNvbXBhbnktcHJlc3MtcmVsZWFzZS1hcmNoaXZlXCIpO1xyXG4gICAgICAgICAgICAkKGAjZ2V0JHtpc0NvbXBhbnkgPyBcIi1jb21wYW55XCIgOiBcIlwifS1wcmVzcy1yZWxlYXNlc2ApLmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIGlmIChpc0NvbXBhbnkpXHJcbiAgICAgICAgICAgICAgICBnZXRDb21wYW55UHJlc3NSZWxlYXNlcygpO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBnZXRQcmVzc1JlbGVhc2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgJCgnLnR3by1jb2wtYXJjaGl2ZS5wcmVzcy1yZWxlYXNlLWFyY2hpdmUnKS5maW5kKCcubGluay5jYXBpdGFsJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHNob3dGaWx0ZXJlZFByZXNzUmVsZWFzZXMoKTtcclxuICAgIH0pO1xyXG5cclxuICAgICQoJy50d28tY29sLWFyY2hpdmUuY29tcGFueS1wcmVzcy1yZWxlYXNlLWFyY2hpdmUnKS5maW5kKCcubGluay5jYXBpdGFsJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHNob3dGaWx0ZXJlZENvbXBhbnlQcmVzc1JlbGVhc2VzKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmdW5jdGlvbiBnZXRQcmVzc1JlbGVhc2VzKCkge1xyXG4gICAgICAgIHZhciAkc2VjdGlvbiA9ICQoXCIudHdvLWNvbC1hcmNoaXZlLnByZXNzLXJlbGVhc2UtYXJjaGl2ZVwiKTtcclxuICAgICAgICBjb25zdCAkcmVndWxhdG9yeUJ1dHRvbiA9ICRzZWN0aW9uLmZpbmQoJyNzdHlsZWQtY2hlY2tib3gtNScpO1xyXG4gICAgICAgIGNvbnN0ICRyZWd1bGF0b3J5ID0gJHJlZ3VsYXRvcnlCdXR0b24uaXMoJzpjaGVja2VkJyk7XHJcbiAgICAgICAgY29uc3QgJHNlYXJjaEJhciA9ICRzZWN0aW9uLmZpbmQoJyNzZWFyY2gnKTtcclxuICAgICAgICBjb25zdCAkc2VhcmNoID0gJHNlYXJjaEJhci52YWwoKTtcclxuICAgICAgICBjb25zdCAkZHJvcGRvd24gPSAkc2VjdGlvbi5maW5kKCcuc2VsZWN0LWRyb3Bkb3duJyk7XHJcbiAgICAgICAgY29uc3QgJHllYXIgPSAkZHJvcGRvd24uZmluZCgnLmFjdGl2ZScpLnRleHQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgdmFsdWVzID0ge1xyXG4gICAgICAgICAgICBJc1JlZ3VsYXRvcnk6ICRyZWd1bGF0b3J5LFxyXG4gICAgICAgICAgICBTZWFyY2hUZXh0OiAkc2VhcmNoLFxyXG4gICAgICAgICAgICBZZWFyOiAkeWVhcixcclxuICAgICAgICAgICAgTGFuZ3VhZ2U6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnkodmFsdWVzKTtcclxuXHJcbiAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgdXJsOiBgL1ByZXNzUmVsZWFzZUFyY2hpdmVCbG9jay9HZXRQcmVzc1JlbGVhc2VzYCxcclxuICAgICAgICAgICAgdHlwZTogXCJHRVRcIixcclxuICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChKU09OLnBhcnNlKGRhdGEuc2VyaWFsaXplZFJlc3VsdCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJHNlY3Rpb24uZmluZCgnLm5vLXJlc3VsdHMnKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJQcmVzc1JlbGVhc2VzKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgJCgnI2dldC1wcmVzcy1yZWxlYXNlcycpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZmlsdGVyUHJlc3NSZWxlYXNlcyhpZHMpIHtcclxuICAgICAgICBpZHMgPSBKU09OLnBhcnNlKGlkcy5zZXJpYWxpemVkUmVzdWx0KTtcclxuICAgICAgICB2YXIgJHByZXNzUmVsZWFzZXMgPSAkKCcucHJlc3MtcmVsZWFzZS1hcmNoaXZlIC5wcmVzcy1yZWxlYXNlJyk7XHJcbiAgICAgICAgJC5lYWNoKCRwcmVzc1JlbGVhc2VzLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKGlkcy5pbmRleE9mKCR0aGlzLmRhdGEoJ2lkJykpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ2Npc2lvbi12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBzaG93RmlsdGVyZWRQcmVzc1JlbGVhc2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gc2hvd0ZpbHRlcmVkUHJlc3NSZWxlYXNlcygpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gJCgnLnByZXNzLXJlbGVhc2UtYXJjaGl2ZSAucHJlc3MtcmVsZWFzZS5jaXNpb24tdmlzaWJsZS5kLW5vbmU6bHQoNiknKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPCA2KSB7XHJcbiAgICAgICAgICAgICQoJy50d28tY29sLWFyY2hpdmUucHJlc3MtcmVsZWFzZS1hcmNoaXZlJykuZmluZCgnLmxpbmsuY2FwaXRhbC5wcmVzcy1yZWxlYXNlLWFyY2hpdmUnKS5oaWRlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJCgnLnR3by1jb2wtYXJjaGl2ZS5wcmVzcy1yZWxlYXNlLWFyY2hpdmUnKS5maW5kKCcubGluay5jYXBpdGFsLnByZXNzLXJlbGVhc2UtYXJjaGl2ZScpLnNob3coKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIGdldENvbXBhbnlQcmVzc1JlbGVhc2VzKCkge1xyXG4gICAgICAgIHZhciAkc2VjdGlvbiA9ICQoXCIudHdvLWNvbC1hcmNoaXZlLmNvbXBhbnktcHJlc3MtcmVsZWFzZS1hcmNoaXZlXCIpO1xyXG4gICAgICAgIGNvbnN0ICRzZWFyY2hCYXIgPSAkc2VjdGlvbi5maW5kKCcjc2VhcmNoJyk7XHJcbiAgICAgICAgY29uc3QgJHNlYXJjaCA9ICRzZWFyY2hCYXIudmFsKCk7XHJcbiAgICAgICAgY29uc3QgJGRyb3Bkb3duID0gJHNlY3Rpb24uZmluZCgnLnNlbGVjdC1kcm9wZG93bicpO1xyXG4gICAgICAgIGNvbnN0ICR5ZWFyID0gJGRyb3Bkb3duLmZpbmQoJy5hY3RpdmUnKS50ZXh0KCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHtcclxuICAgICAgICAgICAgU2VhcmNoVGV4dDogJHNlYXJjaCxcclxuICAgICAgICAgICAgWWVhcjogJHllYXIsXHJcbiAgICAgICAgICAgIExhbmd1YWdlOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZyxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB2YXIgZGF0YSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlcyk7XHJcblxyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDogYC9Db21wYW55UHJlc3NSZWxlYXNlQXJjaGl2ZUJsb2NrL0dldFByZXNzUmVsZWFzZXNgLFxyXG4gICAgICAgICAgICB0eXBlOiBcIkdFVFwiLFxyXG4gICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKEpTT04ucGFyc2UoZGF0YS5zZXJpYWxpemVkUmVzdWx0KS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAkc2VjdGlvbi5maW5kKCcubm8tcmVzdWx0cycpLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZpbHRlckNvbXBhbnlQcmVzc1JlbGVhc2VzKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgJCgnI2dldC1jb21wYW55LXByZXNzLXJlbGVhc2VzJykucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gZmlsdGVyQ29tcGFueVByZXNzUmVsZWFzZXMoaWRzKSB7XHJcbiAgICAgICAgaWRzID0gSlNPTi5wYXJzZShpZHMuc2VyaWFsaXplZFJlc3VsdCk7XHJcbiAgICAgICAgdmFyICRwcmVzc1JlbGVhc2VzID0gJCgnLmNvbXBhbnktcHJlc3MtcmVsZWFzZS1hcmNoaXZlIC5wcmVzcy1yZWxlYXNlJyk7XHJcbiAgICAgICAgJC5lYWNoKCRwcmVzc1JlbGVhc2VzLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKGlkcy5pbmRleE9mKCR0aGlzLmRhdGEoJ2lkJykpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ2Npc2lvbi12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBzaG93RmlsdGVyZWRDb21wYW55UHJlc3NSZWxlYXNlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHNob3dGaWx0ZXJlZENvbXBhbnlQcmVzc1JlbGVhc2VzKCkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAkKCcuY29tcGFueS1wcmVzcy1yZWxlYXNlLWFyY2hpdmUgLnByZXNzLXJlbGVhc2UuY2lzaW9uLXZpc2libGUuZC1ub25lOmx0KDYpJykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoIDwgNikge1xyXG4gICAgICAgICAgICAkKCcudHdvLWNvbC1hcmNoaXZlLmNvbXBhbnktcHJlc3MtcmVsZWFzZS1hcmNoaXZlJykuZmluZCgnLmxpbmsuY2FwaXRhbC5wcmVzcy1yZWxlYXNlLWFyY2hpdmUnKS5oaWRlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJCgnLnR3by1jb2wtYXJjaGl2ZS5jb21wYW55LXByZXNzLXJlbGVhc2UtYXJjaGl2ZScpLmZpbmQoJy5saW5rLmNhcGl0YWwucHJlc3MtcmVsZWFzZS1hcmNoaXZlJykuc2hvdygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBsb2FkRGlzY2xhaW1lcigpIHtcclxuICAgICAgICBjb25zdCAkc2VjdGlvbiA9ICQoXCIuaW52ZXN0b3ItcGFnZS1wcm90ZWN0ZWRcIik7XHJcbiAgICAgICAgY29uc3QgJHJlc2lkZW5jZURyb3Bkb3duID0gJHNlY3Rpb24uZmluZCgnLndyYXBwZXItZHJvcGRvd24ucmVzaWRlbmNlJyk7XHJcbiAgICAgICAgY29uc3QgJGxvY2F0aW9uRHJvcGRvd24gPSAkc2VjdGlvbi5maW5kKCcud3JhcHBlci1kcm9wZG93bi5sb2NhdGlvbicpO1xyXG4gICAgICAgIGNvbnN0ICRyZXNpZGVuY2UgPSAkcmVzaWRlbmNlRHJvcGRvd24uZmluZCgnLmFjdGl2ZScpLmRhdGEoJ3ZhbHVlJyk7XHJcbiAgICAgICAgY29uc3QgJGxvY2F0aW9uID0gJGxvY2F0aW9uRHJvcGRvd24uZmluZCgnLmFjdGl2ZScpLmRhdGEoJ3ZhbHVlJyk7XHJcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcblxyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDogdXJsLmVuZHNXaXRoKCcvJykgPyB1cmwuc2xpY2UoMCwgLTEpIDogdXJsLFxyXG4gICAgICAgICAgICB0eXBlOiBcIkdFVFwiLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICByZXNpZGVuY2U6ICRyZXNpZGVuY2UsXHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogJGxvY2F0aW9uXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XHJcbiAgICAgICAgICAgICAgICAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZFNlY3Rpb25XcmFwLmVtcHR5KCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgJGh0bWwgPSAkKGRhdGEpLmZpbmQoXCIuaW52ZXN0b3ItcGFnZS1wcm90ZWN0ZWQtZGlzY2xhaW1lclwiKTtcclxuICAgICAgICAgICAgICAgICRpbnZlc3RvcnNQYWdlUHJvdGVjdGVkU2VjdGlvbldyYXAuaHRtbCgkaHRtbCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZGlzY2xhaW1lckRlY2xpbmVkKCkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xyXG4gICAgICAgIHZhciAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZCA9ICQoXCIuaW52ZXN0b3ItcGFnZS1wcm90ZWN0ZWQtZGlzY2xhaW1lclwiKTtcclxuICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICB1cmw6IHVybC5lbmRzV2l0aCgnLycpID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybCxcclxuICAgICAgICAgICAgdHlwZTogXCJHRVRcIixcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgZGlzY2xhaW1lckFjY2VwdGVkOiBcImZhbHNlXCIsXHJcbiAgICAgICAgICAgICAgICByZXN0cmljdGlvbnNBY2NlcHRlZDogXCJmYWxzZVwiXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XHJcbiAgICAgICAgICAgICAgICAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZC5lbXB0eSgpO1xyXG4gICAgICAgICAgICAgICAgdmFyICRodG1sID0gJChkYXRhKS5maW5kKFwiLmludmVzdG9yLXBhZ2UtcHJvdGVjdGVkLWRpc2NsYWltZXJcIik7XHJcbiAgICAgICAgICAgICAgICAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZC5odG1sKCRodG1sKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBkaXNjbGFpbWVyQWNjZXB0ZWQoKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgdXJsOiB1cmwuZW5kc1dpdGgoJy8nKSA/IHVybC5zbGljZSgwLCAtMSkgOiB1cmwsXHJcbiAgICAgICAgICAgIHR5cGU6IFwiR0VUXCIsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGRpc2NsYWltZXJBY2NlcHRlZDogXCJ5ZXNcIixcclxuICAgICAgICAgICAgICAgIHJlc3RyaWN0aW9uc0FjY2VwdGVkOiBcInllc1wiXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XHJcbiAgICAgICAgICAgICAgICAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZC5lbXB0eSgpO1xyXG4gICAgICAgICAgICAgICAgdmFyICRodG1sID0gJChkYXRhKS5maW5kKFwiLmludmVzdG9yLXBhZ2UtcHJvdGVjdGVkXCIpO1xyXG4gICAgICAgICAgICAgICAgJGludmVzdG9yc1BhZ2VQcm90ZWN0ZWQuaHRtbCgkaHRtbCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyICR2YWNhbmNpZXNBcmNoaXZlID0gJCgnLnR3by1jb2wtYXJjaGl2ZS52YWNhbmNpZXMtd3JhcCcpO1xyXG5cclxuICAgICR2YWNhbmNpZXNBcmNoaXZlLmZpbmQoJy5saW5rLmNhcGl0YWwnKS5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgc2hvd0ZpbHRlcmVkVmFjYW5jaWVzKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkdmFjYW5jaWVzQXJjaGl2ZS5maW5kKCcuYXJlYS1kcm9wZG93biBsaSwgLmNvdW50cnktZHJvcGRvd24gbGknKS5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJHZhY2FuY2llc0FyY2hpdmUuZmluZCgnLm5vLXJlc3VsdHMnKS5hZGRDbGFzcygnZC1ub25lJyk7XHJcblxyXG4gICAgICAgIHZhciBhcmVhVmFsdWUgPSAkKHRoaXMpLmF0dHIoXCJkYXRhLWFyZWFcIik7XHJcbiAgICAgICAgdmFyIGNvdW50cnlWYWx1ZSA9ICQodGhpcykuYXR0cihcImRhdGEtY291bnRyeVwiKTtcclxuICAgICAgICB2YXIgYXJlYSA9IGFyZWFWYWx1ZSA/ICQodGhpcykudGV4dCgpIDogKCQoJy5hcmVhLWRyb3Bkb3duIGxpLmFjdGl2ZScpLnRleHQoKSB8fCBcIlwiKTtcclxuICAgICAgICB2YXIgY291bnRyeSA9IGNvdW50cnlWYWx1ZSA/ICQodGhpcykudGV4dCgpIDogKCQoJy5jb3VudHJ5LWRyb3Bkb3duIGxpLmFjdGl2ZScpLnRleHQoKSB8fCBcIlwiKTtcclxuXHJcbiAgICAgICAgdmFyIGVtcHR5QXJlYSA9ICQoJy5hcmVhLWRyb3Bkb3duIGxpLmFsbCcpLnRleHQoKTtcclxuICAgICAgICB2YXIgZW1wdHlDb3VudHJ5ID0gJCgnLmNvdW50cnktZHJvcGRvd24gbGkuYWxsJykudGV4dCgpO1xyXG5cclxuICAgICAgICB2YXIgc2VsZWN0b3IgPSBcIi52YWNhbmN5XCI7XHJcblxyXG4gICAgICAgIGlmIChhcmVhICE9PSBlbXB0eUFyZWEpIHtcclxuICAgICAgICAgICAgc2VsZWN0b3IgKz0gXCJbZGF0YS1hcmVhPSdcIiArIGFyZWEgKyBcIiddXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY291bnRyeSAhPT0gZW1wdHlDb3VudHJ5KSB7XHJcbiAgICAgICAgICAgIHNlbGVjdG9yICs9IFwiW2RhdGEtY291bnRyeT0nXCIgKyBjb3VudHJ5ICsgXCInXVwiO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2VsZWN0b3IgKz0gXCIuZC1ub25lOmx0KDYpXCI7XHJcbiAgICAgICAgJHZhY2FuY2llc0FyY2hpdmUuZmluZCgnLnZhY2FuY3knKS5hZGRDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9ICR2YWNhbmNpZXNBcmNoaXZlLmZpbmQoc2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgJHZhY2FuY2llc0FyY2hpdmUuZmluZCgnLm5vLXJlc3VsdHMnKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA8IDYpIHtcclxuICAgICAgICAgICAgJHZhY2FuY2llc0FyY2hpdmUuZmluZCgnLmxpbmsuY2FwaXRhbCcpLmhpZGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAkdmFjYW5jaWVzQXJjaGl2ZS5maW5kKCcubGluay5jYXBpdGFsJykuc2hvdygpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGZ1bmN0aW9uIHNob3dGaWx0ZXJlZFZhY2FuY2llcygpIHtcclxuICAgICAgICB2YXIgYXJlYSA9ICR2YWNhbmNpZXNBcmNoaXZlLmZpbmQoJy5hcmVhLWRyb3Bkb3duIGxpLmFjdGl2ZScpLnRleHQoKTtcclxuICAgICAgICB2YXIgY291bnRyeSA9ICR2YWNhbmNpZXNBcmNoaXZlLmZpbmQoJy5jb3VudHJ5LWRyb3Bkb3duIGxpLmFjdGl2ZScpLnRleHQoKTtcclxuXHJcbiAgICAgICAgdmFyIGVtcHR5QXJlYSA9ICQoJy5hcmVhLWRyb3Bkb3duIGxpLmFsbCcpLnRleHQoKTtcclxuICAgICAgICB2YXIgZW1wdHlDb3VudHJ5ID0gJCgnLmNvdW50cnktZHJvcGRvd24gbGkuYWxsJykudGV4dCgpO1xyXG5cclxuICAgICAgICB2YXIgYXJlYVNlbGVjdG9yID0gYXJlYSAmJiBhcmVhICE9PSBlbXB0eUFyZWEgPyBcIltkYXRhLWFyZWE9J1wiICsgYXJlYSArIFwiJ11cIiA6IFwiXCI7XHJcbiAgICAgICAgdmFyIGNvdW50cnlTZWxlY3RvciA9IGNvdW50cnkgJiYgY291bnRyeSAhPT0gZW1wdHlDb3VudHJ5ID8gXCJbZGF0YS1jb3VudHJ5PSdcIiArIGNvdW50cnkgKyBcIiddXCIgOiBcIlwiO1xyXG4gICAgICAgIHZhciBzZWxlY3RvciA9IFwiLnZhY2FuY3lcIiArIGFyZWFTZWxlY3RvciArIGNvdW50cnlTZWxlY3RvciArIFwiLmQtbm9uZTpsdCg2KVwiO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAkdmFjYW5jaWVzQXJjaGl2ZS5maW5kKHNlbGVjdG9yKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPCA2KSB7XHJcbiAgICAgICAgICAgICR2YWNhbmNpZXNBcmNoaXZlLmZpbmQoJy5saW5rLmNhcGl0YWwnKS5oaWRlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJHZhY2FuY2llc0FyY2hpdmUuZmluZCgnLmxpbmsuY2FwaXRhbCcpLnNob3coKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdmFyICR2aWRlb0FyY2hpdmUgPSAkKFwiLnZpZGVvLWFyY2hpdmVcIik7XHJcbiAgICAkdmlkZW9BcmNoaXZlLmZpbmQoXCIudmlldy1tb3JlXCIpLmNsaWNrKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gJHZpZGVvQXJjaGl2ZS5maW5kKCcuZC1ub25lOmx0KDkpJykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpO1xyXG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoIDwgOSkge1xyXG4gICAgICAgICAgICAkKHRoaXMpLmhpZGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB2YXIgJGludmVzdG9yc1BhZ2VQcm90ZWN0ZWQgPSAkKFwiLmludmVzdG9yLXBhZ2UtcHJvdGVjdGVkXCIpO1xyXG4gICAgdmFyICRpbnZlc3RvcnNQYWdlUHJvdGVjdGVkU2VjdGlvbldyYXAgPSAkKFwiI2ludmVzdG9yLXByb3RlY3RlZC1zZWN0aW9uLXdyYXBcIik7XHJcbiAgICB2YXIgJGludmVzdG9yc1BhZ2VQcm90ZWN0ZWRTdWJtaXQgPSAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZC5maW5kKCcjZGlzY2xhaW1lci1jb3VudHJ5Jyk7XHJcbiAgICB2YXIgJGxvY2F0aW9uRHJvcGRvd24gPSAkKCcud3JhcHBlci1kcm9wZG93bi5sb2NhdGlvbicpO1xyXG4gICAgdmFyICRyZXNpZGVuY2VEcm9wZG93biA9ICQoJy53cmFwcGVyLWRyb3Bkb3duLnJlc2lkZW5jZScpO1xyXG5cclxuICAgICRsb2NhdGlvbkRyb3Bkb3duLmZpbmQoJy5zZWxlY3QtZHJvcGRvd24nKS5maW5kKCdsaScpLmNsaWNrKCgpID0+IHtcclxuICAgICAgICB2YXIgJGludmVzdG9yc1BhZ2VQcm90ZWN0ZWRTdWJtaXQgPSAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZC5maW5kKCcjZGlzY2xhaW1lci1jb3VudHJ5Jyk7XHJcbiAgICAgICAgdmFyICRyZXNpZGVuY2VEcm9wZG93blZhbHVlID0gJHJlc2lkZW5jZURyb3Bkb3duLmZpbmQoJy5hY3RpdmUnKS5kYXRhKCd2YWx1ZScpO1xyXG4gICAgICAgIGlmICgkcmVzaWRlbmNlRHJvcGRvd25WYWx1ZSAhPT0gJycgJiYgJHJlc2lkZW5jZURyb3Bkb3duVmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZFN1Ym1pdC5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAkcmVzaWRlbmNlRHJvcGRvd24uZmluZCgnLnNlbGVjdC1kcm9wZG93bicpLmZpbmQoJ2xpJykuY2xpY2soKCkgPT4ge1xyXG4gICAgICAgIHZhciAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZFN1Ym1pdCA9ICRpbnZlc3RvcnNQYWdlUHJvdGVjdGVkLmZpbmQoJyNkaXNjbGFpbWVyLWNvdW50cnknKTtcclxuICAgICAgICB2YXIgJGxvY2F0aW9uRHJvcGRvd25WYWx1ZSA9ICRsb2NhdGlvbkRyb3Bkb3duLmZpbmQoJy5hY3RpdmUnKS5kYXRhKCd2YWx1ZScpO1xyXG4gICAgICAgIGlmICgkbG9jYXRpb25Ecm9wZG93blZhbHVlICE9PSAnJyAmJiAkbG9jYXRpb25Ecm9wZG93blZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgJGludmVzdG9yc1BhZ2VQcm90ZWN0ZWRTdWJtaXQucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgICRpbnZlc3RvcnNQYWdlUHJvdGVjdGVkU3VibWl0LmNsaWNrKCgpID0+IHtcclxuICAgICAgICBsb2FkRGlzY2xhaW1lcigpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJCgnYm9keScpLm9uKCdjbGljaycsICcjZGlzY2xhaW1lci15ZXMnLCAoKCkgPT4ge1xyXG4gICAgICAgIHZhciAkZGlzY2xhaW1lclllcyA9ICQoXCIjZGlzY2xhaW1lci15ZXNcIik7XHJcbiAgICAgICAgdmFyICRyZXN0cmljdGlvbldyYXBwZXIgPSAkKFwiI3Jlc3RyaWN0aW9uLXdyYXBwZXJcIik7XHJcbiAgICAgICAgJGRpc2NsYWltZXJZZXMuZGF0YSgnYWNjZXB0ZWQnLCB0cnVlKTtcclxuICAgICAgICAkcmVzdHJpY3Rpb25XcmFwcGVyLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcclxuICAgIH0pKTtcclxuXHJcbiAgICAkKCdib2R5Jykub24oJ2NsaWNrJywgJyNkaXNjbGFpbWVyLW5vJywgKCgpID0+IHtcclxuICAgICAgICBkaXNjbGFpbWVyRGVjbGluZWQoKTtcclxuICAgIH0pKTtcclxuXHJcbiAgICAkKCdib2R5Jykub24oJ2NsaWNrJywgJyNyZXN0cmljdGlvbi1ubycsICgoKSA9PiB7XHJcbiAgICAgICAgZGlzY2xhaW1lckRlY2xpbmVkKCk7XHJcbiAgICB9KSk7XHJcblxyXG4gICAgJCgnYm9keScpLm9uKCdjbGljaycsICcjcmVzdHJpY3Rpb24teWVzJywgKCgpID0+IHtcclxuICAgICAgICB2YXIgJGRpc2NsYWltZXJZZXMgPSAkKFwiI2Rpc2NsYWltZXIteWVzXCIpO1xyXG4gICAgICAgIGlmICgkZGlzY2xhaW1lclllcy5kYXRhKCdhY2NlcHRlZCcpID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGRpc2NsYWltZXJBY2NlcHRlZCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRpc2NsYWltZXJEZWNsaW5lZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH0pKTtcclxuXHJcbiAgICAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZFN1Ym1pdCA9ICRpbnZlc3RvcnNQYWdlUHJvdGVjdGVkLmZpbmQoJyNwcm90ZWN0ZWQtdG1wJyk7XHJcbiAgICAkaW52ZXN0b3JzUGFnZVByb3RlY3RlZFN1Ym1pdC5jbGljaygoKSA9PiB7XHJcbiAgICAgICAgbG9hZERpc2NsYWltZXIoKTtcclxuICAgIH0pO1xyXG59KTtcclxuXHJcbi8qIE9uIGxvYWQgYW5pbWF0aW9uICovXHJcbiQod2luZG93KS5vbihcImxvYWRcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyICRuYXYgPSAkKCcjbmF2YmFyJyk7XHJcbiAgICB2YXIgJGhlcm9UZXh0ID0gJCgnLmhlcm8taGVhZGVyIC5jb2x1bW4tdGV4dCcpO1xyXG4gICAgdmFyICRoZXJvTGluayA9ICQoJy5oZXJvLWhlYWRlciAubGluaycpO1xyXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJG5hdi5hZGRDbGFzcygnc2hvdycpO1xyXG4gICAgfSwgNTAwKTtcclxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICRoZXJvVGV4dC5hZGRDbGFzcygnc2hvdycpO1xyXG4gICAgICAgICRoZXJvTGluay5hZGRDbGFzcygnc2hvdycpO1xyXG4gICAgfSwgNzU1KTtcclxufSk7XHJcblxyXG4kKHdpbmRvdykub24oJ2xvYWQnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgY3VycmVudExhbmd1YWdlID0gJChcImh0bWxcIikuYXR0cihcImxhbmdcIik7XHJcbiAgICAoZnVuY3Rpb24gKHdpZGdldHMpIHtcclxuICAgICAgdmFyIHVybCA9ICdodHRwczovL3dpZGdldC5kYXRhYmxvY2tzLnNlL2FwaS9yb3NlJztcclxuICAgICAgaWYgKCF3aW5kb3cuX01GKSB7XHJcbiAgICAgICAgdmFyIGIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgICAgICBiLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuICAgICAgICBiLmFzeW5jID0gdHJ1ZTtcclxuICAgICAgICBiLnNyYyA9IHVybCArICcvYXNzZXRzL2pzL2xvYWRlci12NC5qcyc7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5hcHBlbmRDaGlsZChiKTtcclxuICAgICAgfVxyXG4gICAgICB3aW5kb3cuX01GID0gd2luZG93Ll9NRiB8fCB7XHJcbiAgICAgICAgZGF0YTogW10sXHJcbiAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgcmVhZHk6ICEhMCxcclxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHdpbmRvdy5fTUYucmVhZHkgPSAhMDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHB1c2g6IGZ1bmN0aW9uICh3KSB7XHJcbiAgICAgICAgICB3aW5kb3cuX01GLmRhdGEucHVzaCh3KTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgICB3aW5kb3cuX01GLnB1c2god2lkZ2V0cyk7XHJcbiAgICB9KShbXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNpbnNpZGVyUG9zaXRpb25zJyxcclxuICAgICAgICB3aWRnZXQ6ICdpbnNpZGVyLXBvc2l0aW9ucycsXHJcbiAgICAgICAgbG9jYWxlOiBjdXJyZW50TGFuZ3VhZ2UsXHJcbiAgICAgICAgdG9rZW46ICdkYjY2NzA1OC02OTAxLTQwZWItYWUzMS01ZDljZDI1NGIyM2InLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcXVlcnk6ICcjaW5zaWRlck90aGVyJyxcclxuICAgICAgICB3aWRnZXQ6ICdpbnNpZGVyLXRyYW5zYWN0aW9ucycsXHJcbiAgICAgICAgbG9jYWxlOiBjdXJyZW50TGFuZ3VhZ2UsXHJcbiAgICAgICAgdG9rZW46ICdiODlhNGQ1OS0yNGVhLTQ1NDQtOTMyZS05YWUwZmJjNjIxYzAnLFxyXG4gICAgICAgIGRpc2FibGVPdXRwdXRDYWNoZTogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI2luc2lkZXJUcmFuc2FjdGlvbnMnLFxyXG4gICAgICAgIHdpZGdldDogJ2luc2lkZXItdHJhbnNhY3Rpb25zJyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJzM3ZTIwY2EwLWQ4NjItNGFhMy04Y2Y4LTkxMjQ5MTkzODkzOCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNyYXRvc0JUaWNrZXInLFxyXG4gICAgICAgIHdpZGdldDogJ3N0b2NrLXRhYmxlJyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJ2MxOWY4YTQ4LWQ0NzItNGI4OC04MGVlLTk3MTNjZDQ5MGIzZScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNyYXRvc0JHcmFwaCcsXHJcbiAgICAgICAgd2lkZ2V0OiAnc3RvY2stY2hhcnQnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnNWM3YmI2NjUtNTU4Zi00ZjYyLThjZGMtNWE4YTQyNTY2YTFlJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI3JhdG9zQlRhYmxlJyxcclxuICAgICAgICB3aWRnZXQ6ICdzdG9jay10YWJsZScsXHJcbiAgICAgICAgbG9jYWxlOiBjdXJyZW50TGFuZ3VhZ2UsXHJcbiAgICAgICAgdG9rZW46ICdiODBmMTdhNi1iMmZmLTRjNTgtOGU5Yi02ODI2ZWE1YWU1Y2YnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcXVlcnk6ICcjcmF0b3NCVGFibGUyJyxcclxuICAgICAgICB3aWRnZXQ6ICdzdG9jay10YWJsZScsXHJcbiAgICAgICAgbG9jYWxlOiBjdXJyZW50TGFuZ3VhZ2UsXHJcbiAgICAgICAgdG9rZW46ICdiODBmMTdhNi1iMmZmLTRjNTgtOGU5Yi02ODI2ZWE1YWU1Y2YnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcXVlcnk6ICcjcmF0b3NBVGlja2VyJyxcclxuICAgICAgICB3aWRnZXQ6ICdzdG9jay10YWJsZScsXHJcbiAgICAgICAgbG9jYWxlOiBjdXJyZW50TGFuZ3VhZ2UsXHJcbiAgICAgICAgdG9rZW46ICdjMTlmOGE0OC1kNDcyLTRiODgtODBlZS05NzEzY2Q0OTBiM2UnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcXVlcnk6ICcjcmF0b3NBR3JhcGgnLFxyXG4gICAgICAgIHdpZGdldDogJ3N0b2NrLWNoYXJ0JyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJzk2NzQxMWYwLWY4NDAtNDU5ZS04OWM1LTIzNDMxODhkMTZlYicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNyYXRvc0FUYWJsZScsXHJcbiAgICAgICAgd2lkZ2V0OiAnc3RvY2stdGFibGUnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnYjgwZjE3YTYtYjJmZi00YzU4LThlOWItNjgyNmVhNWFlNWNmJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI3JhdG9zQVRhYmxlMicsXHJcbiAgICAgICAgd2lkZ2V0OiAnc3RvY2stdGFibGUnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnYjgwZjE3YTYtYjJmZi00YzU4LThlOWItNjgyNmVhNWFlNWNmJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI3RvdGFsUmV0dXJuR3JhcGgnLFxyXG4gICAgICAgIHdpZGdldDogJ3N0b2NrLWNoYXJ0JyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJzVjN2JiNjY1LTU1OGYtNGY2Mi04Y2RjLTVhOGE0MjU2NmExZScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyN0b3RhbFJldHVyblRhYmxlJyxcclxuICAgICAgICB3aWRnZXQ6ICd0b3RhbC1yZXR1cm4tdGFibGUtdjInLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnY2UzNWFiYjUtYTY3Ny00YzFjLTg4YTctNjAwZDk3YjFjYzkyJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI2RpdmlkZW5kR3JhcGgnLFxyXG4gICAgICAgIHdpZGdldDogJ2RpdmlkZW5kLWdyYXBoJyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJzgwOWJlNmQ1LTc5MzUtNGI5Mi04ZjBhLTQzZTlhZGM5NmY4MCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNkaXZpZGVuZFRhYmxlJyxcclxuICAgICAgICB3aWRnZXQ6ICdkaXZpZGVuZC10YWJsZScsXHJcbiAgICAgICAgbG9jYWxlOiBjdXJyZW50TGFuZ3VhZ2UsXHJcbiAgICAgICAgdG9rZW46ICdlNmQxYWU5ZC1lYjhkLTRjNjAtODY0Yy05N2NkMjk4NmRmZTEnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcXVlcnk6ICcjc3RvY2tDYWxjdWxhdG9yJyxcclxuICAgICAgICB3aWRnZXQ6ICdzdG9jay1jYWxjdWxhdG9yJyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJ2E3MTQyMzUyLTVjYWUtNGFjZS04YTY4LTI0ZjM1MmFiNDlkMycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNvd25lcnMnLFxyXG4gICAgICAgIHdpZGdldDogJ293bmVyLWxpc3QnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnOTVmZjIwYTMtMDY0Mi00ZjIzLTg1YjgtN2EwMWRiMmNhMGEzJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI293bmVyQ29uY2VudHJhdGlvbicsXHJcbiAgICAgICAgd2lkZ2V0OiAnb3duZXItY29uY2VudHJhdGlvbicsXHJcbiAgICAgICAgbG9jYWxlOiBjdXJyZW50TGFuZ3VhZ2UsXHJcbiAgICAgICAgdG9rZW46ICdkYTNjNDU5Mi01YWM4LTRiNTctODQ1Zi1iODEzNDVmYjU1MzcnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcXVlcnk6ICcjb3duZXJDb3VudHJ5RGlzdHJpYnV0aW9uJyxcclxuICAgICAgICB3aWRnZXQ6ICdvd25lci1jb3VudHJ5LWRpc3QnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnOGQ5YzNhYzMtZjZiYi00YzcyLTgzYzEtYmRmMWY1MzZhY2MwJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI293bmVyVHlwZURpc3RyaWJ1dGlvbicsXHJcbiAgICAgICAgd2lkZ2V0OiAnb3duZXItdHlwZS1kaXN0JyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJzM3M2QyMjBkLWMyZWUtNDgyYS04NmE1LThjMjM4Nzg2ZjAxYScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNhbmFseXN0c1RhYmxlJyxcclxuICAgICAgICB3aWRnZXQ6ICdrcGktYW5hbHlzdHMnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnZGY5OTkwM2MtNmZkZC00ZWFjLThiYzQtOWNkNzE3Y2JmMTU0JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI2NvbnNlbnN1cycsXHJcbiAgICAgICAgd2lkZ2V0OiAna3BpLWNvbnNlbnN1cy1sYXN0LXVwZGF0ZWQnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnODcwNWVhZGUtYjdiMS00ZGZmLTgxOTItZGM0NzQ1ZDAzZGExJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI3JlY29tbWVuZGF0aW9uR3JhZGllbnQnLFxyXG4gICAgICAgIHdpZGdldDogJ2twaS1yZWNvbW1lbmRhdGlvbnMnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnMmRkNDAxMDctOTc0Mi00YjczLTg2NjctMTliZDM1OTVhM2E3JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI3JlY29tbWVuZGF0aW9ucycsXHJcbiAgICAgICAgd2lkZ2V0OiAna3BpLXJlY29tbWVuZGF0aW9ucycsXHJcbiAgICAgICAgbG9jYWxlOiBjdXJyZW50TGFuZ3VhZ2UsXHJcbiAgICAgICAgdG9rZW46ICcyZGQ0MDEwNy05NzQyLTRiNzMtODY2Ny0xOWJkMzU5NWEzYTcnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcXVlcnk6ICcjcHJpY2VIaXN0b3J5JyxcclxuICAgICAgICB3aWRnZXQ6ICdrcGktdGFyZ2V0LXByaWNlLWhpc3RvcnknLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnZmExMmQ2NzgtZTgyYi00ZTVlLTg4NjMtOGQzOGFjNTQyMjU1JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI2VzdGltYXRlTmV0U2FsZXNRdWFydGVyJyxcclxuICAgICAgICB3aWRnZXQ6ICdrcGktZ3JhcGgnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnYjY3NmFjYzItNjA1MC00NzMwLTg5ZWEtNjI3OTlkNWY5ZGM3JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI2VzdGltYXRlTmV0U2FsZXNZZWFyJyxcclxuICAgICAgICB3aWRnZXQ6ICdrcGktZ3JhcGgnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnNWI5YWNlMmItMmE3OS00OWJkLTg0ZTAtOTM0NzA3YzkxMTgxJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI2FrdGllRGF0YScsXHJcbiAgICAgICAgd2lkZ2V0OiAna3BpLXRhYmxlLXYyJyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJzZkYWFmMzZkLTk1MGItNGViNy04NDQzLTVmYWVhNGFkZGEyNScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNlc3RpbWF0ZUViaXRhUXVhcnRlcicsXHJcbiAgICAgICAgd2lkZ2V0OiAna3BpLWdyYXBoJyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJ2U4MjJkZDE4LTcxZjgtNDE2OS04NmI4LTliNGQxMzQ5MzI4YycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNlc3RpbWF0ZUViaXRhWWVhcicsXHJcbiAgICAgICAgd2lkZ2V0OiAna3BpLWdyYXBoJyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJzI5YTQxZjNiLWJjZWYtNDgxMC05YTQzLTJiNmQxZjNlMzdhNScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeTogJyNrcGlCdXNpbmVzc0FyZWFZZWFyJyxcclxuICAgICAgICB3aWRnZXQ6ICdrcGktdGFibGUnLFxyXG4gICAgICAgIGxvY2FsZTogY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgIHRva2VuOiAnZjNhNDg5OTMtMWFjOS00OWRlLWIwMWEtNGEwNWI0YjExNDkyJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI2twaUJ1c2luZXNzQXJlYVF1YXJ0ZXInLFxyXG4gICAgICAgIHdpZGdldDogJ2twaS10YWJsZScsXHJcbiAgICAgICAgbG9jYWxlOiBjdXJyZW50TGFuZ3VhZ2UsXHJcbiAgICAgICAgdG9rZW46ICdiNWIxNTFkZi1mYWNmLTRjZWYtOGUzYS1kNTFmOGFjMTQ4ZjMnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI3N1YnNjcmlwdGlvbicsXHJcbiAgICAgICAgd2lkZ2V0OiAnc3Vic2NyaWJlLXYyJyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJzVlYWFjYTRhLWRhMmUtNDU2NS04NjY0LTRjMTA0ZjU0MTNjZCcsXHJcbiAgICAgICB9LFxyXG4gICAgICAge1xyXG4gICAgICAgIHF1ZXJ5OiAnI2tleUZpZ3VyZXNUYWJsZScsXHJcbiAgICAgICAgd2lkZ2V0OiAna3BpLXRhYmxlLXYyJyxcclxuICAgICAgICBsb2NhbGU6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICB0b2tlbjogJ2Y1NmJhMDQ1LTkyMjMtNDZlNC04MjZjLTg5ZDQ3MjZlMmNlNScsXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9KTtcclxuICBcclxuICAvLyBDaGFuZ2UgTUZOIHF1YXJ0ZXJseSBhbmQgeWVhcmx5IHRhYnNcclxuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7XHJcbiAgICBjb25zdCBvcGVuV2lkZ2V0ID0gKGV2dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGV2dC5jdXJyZW50VGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IHdpZGdldCA9IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2RhdGEtd2lkZ2V0Jyk7XHJcbiAgICAgICAgY29uc3QgZ3JvdXAgPSBidXR0b24uZ2V0QXR0cmlidXRlKCdkYXRhLWdyb3VwJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IGksIHRhYmNvbnRlbnQsIHRhYmxpbmtzO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRhYmNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAubWZuLXRhYnMuJHtncm91cH0gLnRhYmNvbnRlbnRgKTtcclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGFiY29udGVudC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0YWJjb250ZW50W2ldLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRhYmxpbmtzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgLm1mbi10YWJzLiR7Z3JvdXB9IC50YWJsaW5rc2ApO1xyXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0YWJsaW5rcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0YWJsaW5rc1tpXS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQod2lkZ2V0KS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgICAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEFkZCBldmVudCBsaXN0ZW5lcnMgdG8gYWxsIGVsZW1lbnRzIHdpdGggdGhlIFwidGFibGlua3NcIiBjbGFzc1xyXG4gICAgY29uc3QgdGFibGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGFibGlua3MnKTtcclxuICAgIHRhYmxpbmtzLmZvckVhY2goZnVuY3Rpb24oYnV0dG9uKSB7XHJcbiAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb3BlbldpZGdldCk7XHJcbiAgICB9KTtcclxufSk7XHJcbiAgXHJcbiAgLy8gU2hvdyBUb3RhbCBSZXR1cm4gaW4gZ3JhcGhcclxuICBmdW5jdGlvbiBlbGVtZW50QWRkZWRDYWxsYmFjayhtdXRhdGlvbnNMaXN0LCBvYnNlcnZlcikge1xyXG4gICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XHJcbiAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0Jykge1xyXG4gICAgICAgIGNvbnN0IGFkZGVkTm9kZXMgPSBBcnJheS5mcm9tKG11dGF0aW9uLmFkZGVkTm9kZXMpO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGFkZGVkTm9kZXMuc29tZShcclxuICAgICAgICAgICAgKG5vZGUpID0+XHJcbiAgICAgICAgICAgICAgbm9kZS5pZCA9PT0gJ21mX3N0b2NrQ2hhcnQtNWM3YmI2NjUtNTU4Zi00ZjYyLThjZGMtNWE4YTQyNTY2YTFlJ1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgc2V0VGltZW91dChoYW5kbGVUaW1lb3V0KCksIDIwMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICBcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhhZGRlZE5vZGVzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlVGltZW91dCgpIHtcclxuICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWxSZXR1cm5HcmFwaCcpKSB7XHJcbiAgICAgICAgY29uc3QgYnV0dG9uID0gZG9jdW1lbnRcclxuICAgICAgICAuZ2V0RWxlbWVudEJ5SWQoJ3RvdGFsUmV0dXJuR3JhcGgnKVxyXG4gICAgICAgIC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFxyXG4gICAgICAgICAgJ2J1dHRvbnMgY2hlY2stc2hvdy1yZXR1cm4gc2hvd0J0biBjaGVja2FibGUnXHJcbiAgICAgICAgKVswXTtcclxuICAgICAgICBjb25zdCBjYWxsQmFjayA9IE1GX3N0b2NrQ2hhcnRbJzVjN2JiNjY1LTU1OGYtNGY2Mi04Y2RjLTVhOGE0MjU2NmExZSddLnNldFJldHVybjtcclxuICAgICAgICB0b2dnbGVCdG4oYnV0dG9uLCBjYWxsQmFjayk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB0b2dnbGVCdG4oYnRuLCBjYWxsYmFjaykge1xyXG4gICAgdmFyIHJlcyA9IGJ0bi5jbGFzc0xpc3QuYWRkKCdjaGVja2VkJyk7XHJcbiAgICBjYWxsYmFjayhidG4sIHRydWUpO1xyXG4gICAgYnRuLmJsdXIoKTtcclxuICAgIHJldHVybiByZXM7XHJcbiAgfVxyXG5cclxuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkge1xyXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihlbGVtZW50QWRkZWRDYWxsYmFjayk7XHJcbiAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xyXG4gIH0pO1xyXG5cclxuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7XHJcblxyXG4gIGNvbnN0IGNsZWFyVmFsdWVCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xlYXJWYWx1ZScpO1xyXG4gIGNsZWFyVmFsdWVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbGVhclZhbHVlKTtcclxuXHJcbmZ1bmN0aW9uIGNsZWFyVmFsdWUoKSB7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFxyXG4gICAgICAgICdtZm4tZmllbGQtaW5wdXQgbWZuLWZpZWxkLWFkZHJlc3MnXHJcbiAgICApWzBdLnZhbHVlID0gJyc7XHJcbiAgICBkb2N1bWVudFxyXG4gICAgICAgIC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtZm4tc3ViLXN1Ym1pdCcpWzBdXHJcbiAgICAgICAgLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTtcclxuICAgIH1cclxufSk7Il19
;
/*!
  * Bootstrap v4.1.3 (https://getbootstrap.com/)
  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e(t.bootstrap = {}, t.jQuery, t.Popper) }(this, function (t, e, h) { "use strict"; function i(t, e) { for (var n = 0; n < e.length; n++) { var i = e[n]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) } } function s(t, e, n) { return e && i(t.prototype, e), n && i(t, n), t } function l(r) { for (var t = 1; t < arguments.length; t++) { var o = null != arguments[t] ? arguments[t] : {}, e = Object.keys(o); "function" == typeof Object.getOwnPropertySymbols && (e = e.concat(Object.getOwnPropertySymbols(o).filter(function (t) { return Object.getOwnPropertyDescriptor(o, t).enumerable }))), e.forEach(function (t) { var e, n, i; e = r, i = o[n = t], n in e ? Object.defineProperty(e, n, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[n] = i }) } return r } e = e && e.hasOwnProperty("default") ? e.default : e, h = h && h.hasOwnProperty("default") ? h.default : h; var r, n, o, a, c, u, f, d, g, _, m, p, v, y, E, C, T, b, S, I, A, D, w, N, O, k, P, j, H, L, R, x, W, U, q, F, K, M, Q, B, V, Y, z, J, Z, G, $, X, tt, et, nt, it, rt, ot, st, at, lt, ct, ht, ut, ft, dt, gt, _t, mt, pt, vt, yt, Et, Ct, Tt, bt, St, It, At, Dt, wt, Nt, Ot, kt, Pt, jt, Ht, Lt, Rt, xt, Wt, Ut, qt, Ft, Kt, Mt, Qt, Bt, Vt, Yt, zt, Jt, Zt, Gt, $t, Xt, te, ee, ne, ie, re, oe, se, ae, le, ce, he, ue, fe, de, ge, _e, me, pe, ve, ye, Ee, Ce, Te, be, Se, Ie, Ae, De, we, Ne, Oe, ke, Pe, je, He, Le, Re, xe, We, Ue, qe, Fe, Ke, Me, Qe, Be, Ve, Ye, ze, Je, Ze, Ge, $e, Xe, tn, en, nn, rn, on, sn, an, ln, cn, hn, un, fn, dn, gn, _n, mn, pn, vn, yn, En, Cn, Tn, bn, Sn, In, An, Dn, wn, Nn, On, kn, Pn, jn, Hn, Ln, Rn, xn, Wn, Un, qn, Fn = function (i) { var e = "transitionend"; function t(t) { var e = this, n = !1; return i(this).one(l.TRANSITION_END, function () { n = !0 }), setTimeout(function () { n || l.triggerTransitionEnd(e) }, t), this } var l = { TRANSITION_END: "bsTransitionEnd", getUID: function (t) { for (; t += ~~(1e6 * Math.random()), document.getElementById(t);); return t }, getSelectorFromElement: function (t) { var e = t.getAttribute("data-target"); e && "#" !== e || (e = t.getAttribute("href") || ""); try { return document.querySelector(e) ? e : null } catch (t) { return null } }, getTransitionDurationFromElement: function (t) { if (!t) return 0; var e = i(t).css("transition-duration"); return parseFloat(e) ? (e = e.split(",")[0], 1e3 * parseFloat(e)) : 0 }, reflow: function (t) { return t.offsetHeight }, triggerTransitionEnd: function (t) { i(t).trigger(e) }, supportsTransitionEnd: function () { return Boolean(e) }, isElement: function (t) { return (t[0] || t).nodeType }, typeCheckConfig: function (t, e, n) { for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) { var r = n[i], o = e[i], s = o && l.isElement(o) ? "element" : (a = o, {}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase()); if (!new RegExp(r).test(s)) throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + s + '" but expected type "' + r + '".') } var a } }; return i.fn.emulateTransitionEnd = t, i.event.special[l.TRANSITION_END] = { bindType: e, delegateType: e, handle: function (t) { if (i(t.target).is(this)) return t.handleObj.handler.apply(this, arguments) } }, l }(e), Kn = (n = "alert", a = "." + (o = "bs.alert"), c = (r = e).fn[n], u = { CLOSE: "close" + a, CLOSED: "closed" + a, CLICK_DATA_API: "click" + a + ".data-api" }, f = "alert", d = "fade", g = "show", _ = function () { function i(t) { this._element = t } var t = i.prototype; return t.close = function (t) { var e = this._element; t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e) }, t.dispose = function () { r.removeData(this._element, o), this._element = null }, t._getRootElement = function (t) { var e = Fn.getSelectorFromElement(t), n = !1; return e && (n = document.querySelector(e)), n || (n = r(t).closest("." + f)[0]), n }, t._triggerCloseEvent = function (t) { var e = r.Event(u.CLOSE); return r(t).trigger(e), e }, t._removeElement = function (e) { var n = this; if (r(e).removeClass(g), r(e).hasClass(d)) { var t = Fn.getTransitionDurationFromElement(e); r(e).one(Fn.TRANSITION_END, function (t) { return n._destroyElement(e, t) }).emulateTransitionEnd(t) } else this._destroyElement(e) }, t._destroyElement = function (t) { r(t).detach().trigger(u.CLOSED).remove() }, i._jQueryInterface = function (n) { return this.each(function () { var t = r(this), e = t.data(o); e || (e = new i(this), t.data(o, e)), "close" === n && e[n](this) }) }, i._handleDismiss = function (e) { return function (t) { t && t.preventDefault(), e.close(this) } }, s(i, null, [{ key: "VERSION", get: function () { return "4.1.3" } }]), i }(), r(document).on(u.CLICK_DATA_API, '[data-dismiss="alert"]', _._handleDismiss(new _)), r.fn[n] = _._jQueryInterface, r.fn[n].Constructor = _, r.fn[n].noConflict = function () { return r.fn[n] = c, _._jQueryInterface }, _), Mn = (p = "button", y = "." + (v = "bs.button"), E = ".data-api", C = (m = e).fn[p], T = "active", b = "btn", I = '[data-toggle^="button"]', A = '[data-toggle="buttons"]', D = "input", w = ".active", N = ".btn", O = { CLICK_DATA_API: "click" + y + E, FOCUS_BLUR_DATA_API: (S = "focus") + y + E + " blur" + y + E }, k = function () { function n(t) { this._element = t } var t = n.prototype; return t.toggle = function () { var t = !0, e = !0, n = m(this._element).closest(A)[0]; if (n) { var i = this._element.querySelector(D); if (i) { if ("radio" === i.type) if (i.checked && this._element.classList.contains(T)) t = !1; else { var r = n.querySelector(w); r && m(r).removeClass(T) } if (t) { if (i.hasAttribute("disabled") || n.hasAttribute("disabled") || i.classList.contains("disabled") || n.classList.contains("disabled")) return; i.checked = !this._element.classList.contains(T), m(i).trigger("change") } i.focus(), e = !1 } } e && this._element.setAttribute("aria-pressed", !this._element.classList.contains(T)), t && m(this._element).toggleClass(T) }, t.dispose = function () { m.removeData(this._element, v), this._element = null }, n._jQueryInterface = function (e) { return this.each(function () { var t = m(this).data(v); t || (t = new n(this), m(this).data(v, t)), "toggle" === e && t[e]() }) }, s(n, null, [{ key: "VERSION", get: function () { return "4.1.3" } }]), n }(), m(document).on(O.CLICK_DATA_API, I, function (t) { t.preventDefault(); var e = t.target; m(e).hasClass(b) || (e = m(e).closest(N)), k._jQueryInterface.call(m(e), "toggle") }).on(O.FOCUS_BLUR_DATA_API, I, function (t) { var e = m(t.target).closest(N)[0]; m(e).toggleClass(S, /^focus(in)?$/.test(t.type)) }), m.fn[p] = k._jQueryInterface, m.fn[p].Constructor = k, m.fn[p].noConflict = function () { return m.fn[p] = C, k._jQueryInterface }, k), Qn = (j = "carousel", L = "." + (H = "bs.carousel"), R = ".data-api", x = (P = e).fn[j], W = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0 }, U = { interval: "(number|boolean)", keyboard: "boolean", slide: "(boolean|string)", pause: "(string|boolean)", wrap: "boolean" }, q = "next", F = "prev", K = "left", M = "right", Q = { SLIDE: "slide" + L, SLID: "slid" + L, KEYDOWN: "keydown" + L, MOUSEENTER: "mouseenter" + L, MOUSELEAVE: "mouseleave" + L, TOUCHEND: "touchend" + L, LOAD_DATA_API: "load" + L + R, CLICK_DATA_API: "click" + L + R }, B = "carousel", V = "active", Y = "slide", z = "carousel-item-right", J = "carousel-item-left", Z = "carousel-item-next", G = "carousel-item-prev", $ = ".active", X = ".active.carousel-item", tt = ".carousel-item", et = ".carousel-item-next, .carousel-item-prev", nt = ".carousel-indicators", it = "[data-slide], [data-slide-to]", rt = '[data-ride="carousel"]', ot = function () { function o(t, e) { this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this._config = this._getConfig(e), this._element = P(t)[0], this._indicatorsElement = this._element.querySelector(nt), this._addEventListeners() } var t = o.prototype; return t.next = function () { this._isSliding || this._slide(q) }, t.nextWhenVisible = function () { !document.hidden && P(this._element).is(":visible") && "hidden" !== P(this._element).css("visibility") && this.next() }, t.prev = function () { this._isSliding || this._slide(F) }, t.pause = function (t) { t || (this._isPaused = !0), this._element.querySelector(et) && (Fn.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null }, t.cycle = function (t) { t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) }, t.to = function (t) { var e = this; this._activeElement = this._element.querySelector(X); var n = this._getItemIndex(this._activeElement); if (!(t > this._items.length - 1 || t < 0)) if (this._isSliding) P(this._element).one(Q.SLID, function () { return e.to(t) }); else { if (n === t) return this.pause(), void this.cycle(); var i = n < t ? q : F; this._slide(i, this._items[t]) } }, t.dispose = function () { P(this._element).off(L), P.removeData(this._element, H), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null }, t._getConfig = function (t) { return t = l({}, W, t), Fn.typeCheckConfig(j, t, U), t }, t._addEventListeners = function () { var e = this; this._config.keyboard && P(this._element).on(Q.KEYDOWN, function (t) { return e._keydown(t) }), "hover" === this._config.pause && (P(this._element).on(Q.MOUSEENTER, function (t) { return e.pause(t) }).on(Q.MOUSELEAVE, function (t) { return e.cycle(t) }), "ontouchstart" in document.documentElement && P(this._element).on(Q.TOUCHEND, function () { e.pause(), e.touchTimeout && clearTimeout(e.touchTimeout), e.touchTimeout = setTimeout(function (t) { return e.cycle(t) }, 500 + e._config.interval) })) }, t._keydown = function (t) { if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) { case 37: t.preventDefault(), this.prev(); break; case 39: t.preventDefault(), this.next() } }, t._getItemIndex = function (t) { return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(tt)) : [], this._items.indexOf(t) }, t._getItemByDirection = function (t, e) { var n = t === q, i = t === F, r = this._getItemIndex(e), o = this._items.length - 1; if ((i && 0 === r || n && r === o) && !this._config.wrap) return e; var s = (r + (t === F ? -1 : 1)) % this._items.length; return -1 === s ? this._items[this._items.length - 1] : this._items[s] }, t._triggerSlideEvent = function (t, e) { var n = this._getItemIndex(t), i = this._getItemIndex(this._element.querySelector(X)), r = P.Event(Q.SLIDE, { relatedTarget: t, direction: e, from: i, to: n }); return P(this._element).trigger(r), r }, t._setActiveIndicatorElement = function (t) { if (this._indicatorsElement) { var e = [].slice.call(this._indicatorsElement.querySelectorAll($)); P(e).removeClass(V); var n = this._indicatorsElement.children[this._getItemIndex(t)]; n && P(n).addClass(V) } }, t._slide = function (t, e) { var n, i, r, o = this, s = this._element.querySelector(X), a = this._getItemIndex(s), l = e || s && this._getItemByDirection(t, s), c = this._getItemIndex(l), h = Boolean(this._interval); if (t === q ? (n = J, i = Z, r = K) : (n = z, i = G, r = M), l && P(l).hasClass(V)) this._isSliding = !1; else if (!this._triggerSlideEvent(l, r).isDefaultPrevented() && s && l) { this._isSliding = !0, h && this.pause(), this._setActiveIndicatorElement(l); var u = P.Event(Q.SLID, { relatedTarget: l, direction: r, from: a, to: c }); if (P(this._element).hasClass(Y)) { P(l).addClass(i), Fn.reflow(l), P(s).addClass(n), P(l).addClass(n); var f = Fn.getTransitionDurationFromElement(s); P(s).one(Fn.TRANSITION_END, function () { P(l).removeClass(n + " " + i).addClass(V), P(s).removeClass(V + " " + i + " " + n), o._isSliding = !1, setTimeout(function () { return P(o._element).trigger(u) }, 0) }).emulateTransitionEnd(f) } else P(s).removeClass(V), P(l).addClass(V), this._isSliding = !1, P(this._element).trigger(u); h && this.cycle() } }, o._jQueryInterface = function (i) { return this.each(function () { var t = P(this).data(H), e = l({}, W, P(this).data()); "object" == typeof i && (e = l({}, e, i)); var n = "string" == typeof i ? i : e.slide; if (t || (t = new o(this, e), P(this).data(H, t)), "number" == typeof i) t.to(i); else if ("string" == typeof n) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n]() } else e.interval && (t.pause(), t.cycle()) }) }, o._dataApiClickHandler = function (t) { var e = Fn.getSelectorFromElement(this); if (e) { var n = P(e)[0]; if (n && P(n).hasClass(B)) { var i = l({}, P(n).data(), P(this).data()), r = this.getAttribute("data-slide-to"); r && (i.interval = !1), o._jQueryInterface.call(P(n), i), r && P(n).data(H).to(r), t.preventDefault() } } }, s(o, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return W } }]), o }(), P(document).on(Q.CLICK_DATA_API, it, ot._dataApiClickHandler), P(window).on(Q.LOAD_DATA_API, function () { for (var t = [].slice.call(document.querySelectorAll(rt)), e = 0, n = t.length; e < n; e++) { var i = P(t[e]); ot._jQueryInterface.call(i, i.data()) } }), P.fn[j] = ot._jQueryInterface, P.fn[j].Constructor = ot, P.fn[j].noConflict = function () { return P.fn[j] = x, ot._jQueryInterface }, ot), Bn = (at = "collapse", ct = "." + (lt = "bs.collapse"), ht = (st = e).fn[at], ut = { toggle: !0, parent: "" }, ft = { toggle: "boolean", parent: "(string|element)" }, dt = { SHOW: "show" + ct, SHOWN: "shown" + ct, HIDE: "hide" + ct, HIDDEN: "hidden" + ct, CLICK_DATA_API: "click" + ct + ".data-api" }, gt = "show", _t = "collapse", mt = "collapsing", pt = "collapsed", vt = "width", yt = "height", Et = ".show, .collapsing", Ct = '[data-toggle="collapse"]', Tt = function () { function a(e, t) { this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = st.makeArray(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]')); for (var n = [].slice.call(document.querySelectorAll(Ct)), i = 0, r = n.length; i < r; i++) { var o = n[i], s = Fn.getSelectorFromElement(o), a = [].slice.call(document.querySelectorAll(s)).filter(function (t) { return t === e }); null !== s && 0 < a.length && (this._selector = s, this._triggerArray.push(o)) } this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle() } var t = a.prototype; return t.toggle = function () { st(this._element).hasClass(gt) ? this.hide() : this.show() }, t.show = function () { var t, e, n = this; if (!this._isTransitioning && !st(this._element).hasClass(gt) && (this._parent && 0 === (t = [].slice.call(this._parent.querySelectorAll(Et)).filter(function (t) { return t.getAttribute("data-parent") === n._config.parent })).length && (t = null), !(t && (e = st(t).not(this._selector).data(lt)) && e._isTransitioning))) { var i = st.Event(dt.SHOW); if (st(this._element).trigger(i), !i.isDefaultPrevented()) { t && (a._jQueryInterface.call(st(t).not(this._selector), "hide"), e || st(t).data(lt, null)); var r = this._getDimension(); st(this._element).removeClass(_t).addClass(mt), this._element.style[r] = 0, this._triggerArray.length && st(this._triggerArray).removeClass(pt).attr("aria-expanded", !0), this.setTransitioning(!0); var o = "scroll" + (r[0].toUpperCase() + r.slice(1)), s = Fn.getTransitionDurationFromElement(this._element); st(this._element).one(Fn.TRANSITION_END, function () { st(n._element).removeClass(mt).addClass(_t).addClass(gt), n._element.style[r] = "", n.setTransitioning(!1), st(n._element).trigger(dt.SHOWN) }).emulateTransitionEnd(s), this._element.style[r] = this._element[o] + "px" } } }, t.hide = function () { var t = this; if (!this._isTransitioning && st(this._element).hasClass(gt)) { var e = st.Event(dt.HIDE); if (st(this._element).trigger(e), !e.isDefaultPrevented()) { var n = this._getDimension(); this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", Fn.reflow(this._element), st(this._element).addClass(mt).removeClass(_t).removeClass(gt); var i = this._triggerArray.length; if (0 < i) for (var r = 0; r < i; r++) { var o = this._triggerArray[r], s = Fn.getSelectorFromElement(o); if (null !== s) st([].slice.call(document.querySelectorAll(s))).hasClass(gt) || st(o).addClass(pt).attr("aria-expanded", !1) } this.setTransitioning(!0); this._element.style[n] = ""; var a = Fn.getTransitionDurationFromElement(this._element); st(this._element).one(Fn.TRANSITION_END, function () { t.setTransitioning(!1), st(t._element).removeClass(mt).addClass(_t).trigger(dt.HIDDEN) }).emulateTransitionEnd(a) } } }, t.setTransitioning = function (t) { this._isTransitioning = t }, t.dispose = function () { st.removeData(this._element, lt), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null }, t._getConfig = function (t) { return (t = l({}, ut, t)).toggle = Boolean(t.toggle), Fn.typeCheckConfig(at, t, ft), t }, t._getDimension = function () { return st(this._element).hasClass(vt) ? vt : yt }, t._getParent = function () { var n = this, t = null; Fn.isElement(this._config.parent) ? (t = this._config.parent, "undefined" != typeof this._config.parent.jquery && (t = this._config.parent[0])) : t = document.querySelector(this._config.parent); var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]', i = [].slice.call(t.querySelectorAll(e)); return st(i).each(function (t, e) { n._addAriaAndCollapsedClass(a._getTargetFromElement(e), [e]) }), t }, t._addAriaAndCollapsedClass = function (t, e) { if (t) { var n = st(t).hasClass(gt); e.length && st(e).toggleClass(pt, !n).attr("aria-expanded", n) } }, a._getTargetFromElement = function (t) { var e = Fn.getSelectorFromElement(t); return e ? document.querySelector(e) : null }, a._jQueryInterface = function (i) { return this.each(function () { var t = st(this), e = t.data(lt), n = l({}, ut, t.data(), "object" == typeof i && i ? i : {}); if (!e && n.toggle && /show|hide/.test(i) && (n.toggle = !1), e || (e = new a(this, n), t.data(lt, e)), "string" == typeof i) { if ("undefined" == typeof e[i]) throw new TypeError('No method named "' + i + '"'); e[i]() } }) }, s(a, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return ut } }]), a }(), st(document).on(dt.CLICK_DATA_API, Ct, function (t) { "A" === t.currentTarget.tagName && t.preventDefault(); var n = st(this), e = Fn.getSelectorFromElement(this), i = [].slice.call(document.querySelectorAll(e)); st(i).each(function () { var t = st(this), e = t.data(lt) ? "toggle" : n.data(); Tt._jQueryInterface.call(t, e) }) }), st.fn[at] = Tt._jQueryInterface, st.fn[at].Constructor = Tt, st.fn[at].noConflict = function () { return st.fn[at] = ht, Tt._jQueryInterface }, Tt), Vn = (St = "dropdown", At = "." + (It = "bs.dropdown"), Dt = ".data-api", wt = (bt = e).fn[St], Nt = new RegExp("38|40|27"), Ot = { HIDE: "hide" + At, HIDDEN: "hidden" + At, SHOW: "show" + At, SHOWN: "shown" + At, CLICK: "click" + At, CLICK_DATA_API: "click" + At + Dt, KEYDOWN_DATA_API: "keydown" + At + Dt, KEYUP_DATA_API: "keyup" + At + Dt }, kt = "disabled", Pt = "show", jt = "dropup", Ht = "dropright", Lt = "dropleft", Rt = "dropdown-menu-right", xt = "position-static", Wt = '[data-toggle="dropdown"]', Ut = ".dropdown form", qt = ".dropdown-menu", Ft = ".navbar-nav", Kt = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", Mt = "top-start", Qt = "top-end", Bt = "bottom-start", Vt = "bottom-end", Yt = "right-start", zt = "left-start", Jt = { offset: 0, flip: !0, boundary: "scrollParent", reference: "toggle", display: "dynamic" }, Zt = { offset: "(number|string|function)", flip: "boolean", boundary: "(string|element)", reference: "(string|element)", display: "string" }, Gt = function () { function c(t, e) { this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners() } var t = c.prototype; return t.toggle = function () { if (!this._element.disabled && !bt(this._element).hasClass(kt)) { var t = c._getParentFromElement(this._element), e = bt(this._menu).hasClass(Pt); if (c._clearMenus(), !e) { var n = { relatedTarget: this._element }, i = bt.Event(Ot.SHOW, n); if (bt(t).trigger(i), !i.isDefaultPrevented()) { if (!this._inNavbar) { if ("undefined" == typeof h) throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)"); var r = this._element; "parent" === this._config.reference ? r = t : Fn.isElement(this._config.reference) && (r = this._config.reference, "undefined" != typeof this._config.reference.jquery && (r = this._config.reference[0])), "scrollParent" !== this._config.boundary && bt(t).addClass(xt), this._popper = new h(r, this._menu, this._getPopperConfig()) } "ontouchstart" in document.documentElement && 0 === bt(t).closest(Ft).length && bt(document.body).children().on("mouseover", null, bt.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), bt(this._menu).toggleClass(Pt), bt(t).toggleClass(Pt).trigger(bt.Event(Ot.SHOWN, n)) } } } }, t.dispose = function () { bt.removeData(this._element, It), bt(this._element).off(At), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null) }, t.update = function () { this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate() }, t._addEventListeners = function () { var e = this; bt(this._element).on(Ot.CLICK, function (t) { t.preventDefault(), t.stopPropagation(), e.toggle() }) }, t._getConfig = function (t) { return t = l({}, this.constructor.Default, bt(this._element).data(), t), Fn.typeCheckConfig(St, t, this.constructor.DefaultType), t }, t._getMenuElement = function () { if (!this._menu) { var t = c._getParentFromElement(this._element); t && (this._menu = t.querySelector(qt)) } return this._menu }, t._getPlacement = function () { var t = bt(this._element.parentNode), e = Bt; return t.hasClass(jt) ? (e = Mt, bt(this._menu).hasClass(Rt) && (e = Qt)) : t.hasClass(Ht) ? e = Yt : t.hasClass(Lt) ? e = zt : bt(this._menu).hasClass(Rt) && (e = Vt), e }, t._detectNavbar = function () { return 0 < bt(this._element).closest(".navbar").length }, t._getPopperConfig = function () { var e = this, t = {}; "function" == typeof this._config.offset ? t.fn = function (t) { return t.offsets = l({}, t.offsets, e._config.offset(t.offsets) || {}), t } : t.offset = this._config.offset; var n = { placement: this._getPlacement(), modifiers: { offset: t, flip: { enabled: this._config.flip }, preventOverflow: { boundariesElement: this._config.boundary } } }; return "static" === this._config.display && (n.modifiers.applyStyle = { enabled: !1 }), n }, c._jQueryInterface = function (e) { return this.each(function () { var t = bt(this).data(It); if (t || (t = new c(this, "object" == typeof e ? e : null), bt(this).data(It, t)), "string" == typeof e) { if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } }) }, c._clearMenus = function (t) { if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which)) for (var e = [].slice.call(document.querySelectorAll(Wt)), n = 0, i = e.length; n < i; n++) { var r = c._getParentFromElement(e[n]), o = bt(e[n]).data(It), s = { relatedTarget: e[n] }; if (t && "click" === t.type && (s.clickEvent = t), o) { var a = o._menu; if (bt(r).hasClass(Pt) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && bt.contains(r, t.target))) { var l = bt.Event(Ot.HIDE, s); bt(r).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && bt(document.body).children().off("mouseover", null, bt.noop), e[n].setAttribute("aria-expanded", "false"), bt(a).removeClass(Pt), bt(r).removeClass(Pt).trigger(bt.Event(Ot.HIDDEN, s))) } } } }, c._getParentFromElement = function (t) { var e, n = Fn.getSelectorFromElement(t); return n && (e = document.querySelector(n)), e || t.parentNode }, c._dataApiKeydownHandler = function (t) { if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || bt(t.target).closest(qt).length)) : Nt.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !bt(this).hasClass(kt))) { var e = c._getParentFromElement(this), n = bt(e).hasClass(Pt); if ((n || 27 === t.which && 32 === t.which) && (!n || 27 !== t.which && 32 !== t.which)) { var i = [].slice.call(e.querySelectorAll(Kt)); if (0 !== i.length) { var r = i.indexOf(t.target); 38 === t.which && 0 < r && r--, 40 === t.which && r < i.length - 1 && r++, r < 0 && (r = 0), i[r].focus() } } else { if (27 === t.which) { var o = e.querySelector(Wt); bt(o).trigger("focus") } bt(this).trigger("click") } } }, s(c, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return Jt } }, { key: "DefaultType", get: function () { return Zt } }]), c }(), bt(document).on(Ot.KEYDOWN_DATA_API, Wt, Gt._dataApiKeydownHandler).on(Ot.KEYDOWN_DATA_API, qt, Gt._dataApiKeydownHandler).on(Ot.CLICK_DATA_API + " " + Ot.KEYUP_DATA_API, Gt._clearMenus).on(Ot.CLICK_DATA_API, Wt, function (t) { t.preventDefault(), t.stopPropagation(), Gt._jQueryInterface.call(bt(this), "toggle") }).on(Ot.CLICK_DATA_API, Ut, function (t) { t.stopPropagation() }), bt.fn[St] = Gt._jQueryInterface, bt.fn[St].Constructor = Gt, bt.fn[St].noConflict = function () { return bt.fn[St] = wt, Gt._jQueryInterface }, Gt), Yn = (Xt = "modal", ee = "." + (te = "bs.modal"), ne = ($t = e).fn[Xt], ie = { backdrop: !0, keyboard: !0, focus: !0, show: !0 }, re = { backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean", show: "boolean" }, oe = { HIDE: "hide" + ee, HIDDEN: "hidden" + ee, SHOW: "show" + ee, SHOWN: "shown" + ee, FOCUSIN: "focusin" + ee, RESIZE: "resize" + ee, CLICK_DISMISS: "click.dismiss" + ee, KEYDOWN_DISMISS: "keydown.dismiss" + ee, MOUSEUP_DISMISS: "mouseup.dismiss" + ee, MOUSEDOWN_DISMISS: "mousedown.dismiss" + ee, CLICK_DATA_API: "click" + ee + ".data-api" }, se = "modal-scrollbar-measure", ae = "modal-backdrop", le = "modal-open", ce = "fade", he = "show", ue = ".modal-dialog", fe = '[data-toggle="modal"]', de = '[data-dismiss="modal"]', ge = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", _e = ".sticky-top", me = function () { function r(t, e) { this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(ue), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._scrollbarWidth = 0 } var t = r.prototype; return t.toggle = function (t) { return this._isShown ? this.hide() : this.show(t) }, t.show = function (t) { var e = this; if (!this._isTransitioning && !this._isShown) { $t(this._element).hasClass(ce) && (this._isTransitioning = !0); var n = $t.Event(oe.SHOW, { relatedTarget: t }); $t(this._element).trigger(n), this._isShown || n.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), $t(document.body).addClass(le), this._setEscapeEvent(), this._setResizeEvent(), $t(this._element).on(oe.CLICK_DISMISS, de, function (t) { return e.hide(t) }), $t(this._dialog).on(oe.MOUSEDOWN_DISMISS, function () { $t(e._element).one(oe.MOUSEUP_DISMISS, function (t) { $t(t.target).is(e._element) && (e._ignoreBackdropClick = !0) }) }), this._showBackdrop(function () { return e._showElement(t) })) } }, t.hide = function (t) { var e = this; if (t && t.preventDefault(), !this._isTransitioning && this._isShown) { var n = $t.Event(oe.HIDE); if ($t(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) { this._isShown = !1; var i = $t(this._element).hasClass(ce); if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), $t(document).off(oe.FOCUSIN), $t(this._element).removeClass(he), $t(this._element).off(oe.CLICK_DISMISS), $t(this._dialog).off(oe.MOUSEDOWN_DISMISS), i) { var r = Fn.getTransitionDurationFromElement(this._element); $t(this._element).one(Fn.TRANSITION_END, function (t) { return e._hideModal(t) }).emulateTransitionEnd(r) } else this._hideModal() } } }, t.dispose = function () { $t.removeData(this._element, te), $t(window, document, this._element, this._backdrop).off(ee), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._scrollbarWidth = null }, t.handleUpdate = function () { this._adjustDialog() }, t._getConfig = function (t) { return t = l({}, ie, t), Fn.typeCheckConfig(Xt, t, re), t }, t._showElement = function (t) { var e = this, n = $t(this._element).hasClass(ce); this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.scrollTop = 0, n && Fn.reflow(this._element), $t(this._element).addClass(he), this._config.focus && this._enforceFocus(); var i = $t.Event(oe.SHOWN, { relatedTarget: t }), r = function () { e._config.focus && e._element.focus(), e._isTransitioning = !1, $t(e._element).trigger(i) }; if (n) { var o = Fn.getTransitionDurationFromElement(this._element); $t(this._dialog).one(Fn.TRANSITION_END, r).emulateTransitionEnd(o) } else r() }, t._enforceFocus = function () { var e = this; $t(document).off(oe.FOCUSIN).on(oe.FOCUSIN, function (t) { document !== t.target && e._element !== t.target && 0 === $t(e._element).has(t.target).length && e._element.focus() }) }, t._setEscapeEvent = function () { var e = this; this._isShown && this._config.keyboard ? $t(this._element).on(oe.KEYDOWN_DISMISS, function (t) { 27 === t.which && (t.preventDefault(), e.hide()) }) : this._isShown || $t(this._element).off(oe.KEYDOWN_DISMISS) }, t._setResizeEvent = function () { var e = this; this._isShown ? $t(window).on(oe.RESIZE, function (t) { return e.handleUpdate(t) }) : $t(window).off(oe.RESIZE) }, t._hideModal = function () { var t = this; this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._isTransitioning = !1, this._showBackdrop(function () { $t(document.body).removeClass(le), t._resetAdjustments(), t._resetScrollbar(), $t(t._element).trigger(oe.HIDDEN) }) }, t._removeBackdrop = function () { this._backdrop && ($t(this._backdrop).remove(), this._backdrop = null) }, t._showBackdrop = function (t) { var e = this, n = $t(this._element).hasClass(ce) ? ce : ""; if (this._isShown && this._config.backdrop) { if (this._backdrop = document.createElement("div"), this._backdrop.className = ae, n && this._backdrop.classList.add(n), $t(this._backdrop).appendTo(document.body), $t(this._element).on(oe.CLICK_DISMISS, function (t) { e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === e._config.backdrop ? e._element.focus() : e.hide()) }), n && Fn.reflow(this._backdrop), $t(this._backdrop).addClass(he), !t) return; if (!n) return void t(); var i = Fn.getTransitionDurationFromElement(this._backdrop); $t(this._backdrop).one(Fn.TRANSITION_END, t).emulateTransitionEnd(i) } else if (!this._isShown && this._backdrop) { $t(this._backdrop).removeClass(he); var r = function () { e._removeBackdrop(), t && t() }; if ($t(this._element).hasClass(ce)) { var o = Fn.getTransitionDurationFromElement(this._backdrop); $t(this._backdrop).one(Fn.TRANSITION_END, r).emulateTransitionEnd(o) } else r() } else t && t() }, t._adjustDialog = function () { var t = this._element.scrollHeight > document.documentElement.clientHeight; !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px") }, t._resetAdjustments = function () { this._element.style.paddingLeft = "", this._element.style.paddingRight = "" }, t._checkScrollbar = function () { var t = document.body.getBoundingClientRect(); this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() }, t._setScrollbar = function () { var r = this; if (this._isBodyOverflowing) { var t = [].slice.call(document.querySelectorAll(ge)), e = [].slice.call(document.querySelectorAll(_e)); $t(t).each(function (t, e) { var n = e.style.paddingRight, i = $t(e).css("padding-right"); $t(e).data("padding-right", n).css("padding-right", parseFloat(i) + r._scrollbarWidth + "px") }), $t(e).each(function (t, e) { var n = e.style.marginRight, i = $t(e).css("margin-right"); $t(e).data("margin-right", n).css("margin-right", parseFloat(i) - r._scrollbarWidth + "px") }); var n = document.body.style.paddingRight, i = $t(document.body).css("padding-right"); $t(document.body).data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px") } }, t._resetScrollbar = function () { var t = [].slice.call(document.querySelectorAll(ge)); $t(t).each(function (t, e) { var n = $t(e).data("padding-right"); $t(e).removeData("padding-right"), e.style.paddingRight = n || "" }); var e = [].slice.call(document.querySelectorAll("" + _e)); $t(e).each(function (t, e) { var n = $t(e).data("margin-right"); "undefined" != typeof n && $t(e).css("margin-right", n).removeData("margin-right") }); var n = $t(document.body).data("padding-right"); $t(document.body).removeData("padding-right"), document.body.style.paddingRight = n || "" }, t._getScrollbarWidth = function () { var t = document.createElement("div"); t.className = se, document.body.appendChild(t); var e = t.getBoundingClientRect().width - t.clientWidth; return document.body.removeChild(t), e }, r._jQueryInterface = function (n, i) { return this.each(function () { var t = $t(this).data(te), e = l({}, ie, $t(this).data(), "object" == typeof n && n ? n : {}); if (t || (t = new r(this, e), $t(this).data(te, t)), "string" == typeof n) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n](i) } else e.show && t.show(i) }) }, s(r, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return ie } }]), r }(), $t(document).on(oe.CLICK_DATA_API, fe, function (t) { var e, n = this, i = Fn.getSelectorFromElement(this); i && (e = document.querySelector(i)); var r = $t(e).data(te) ? "toggle" : l({}, $t(e).data(), $t(this).data()); "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(); var o = $t(e).one(oe.SHOW, function (t) { t.isDefaultPrevented() || o.one(oe.HIDDEN, function () { $t(n).is(":visible") && n.focus() }) }); me._jQueryInterface.call($t(e), r, this) }), $t.fn[Xt] = me._jQueryInterface, $t.fn[Xt].Constructor = me, $t.fn[Xt].noConflict = function () { return $t.fn[Xt] = ne, me._jQueryInterface }, me), zn = (ve = "tooltip", Ee = "." + (ye = "bs.tooltip"), Ce = (pe = e).fn[ve], Te = "bs-tooltip", be = new RegExp("(^|\\s)" + Te + "\\S+", "g"), Ae = { animation: !0, template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !(Ie = { AUTO: "auto", TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left" }), selector: !(Se = { animation: "boolean", template: "string", title: "(string|element|function)", trigger: "string", delay: "(number|object)", html: "boolean", selector: "(string|boolean)", placement: "(string|function)", offset: "(number|string)", container: "(string|element|boolean)", fallbackPlacement: "(string|array)", boundary: "(string|element)" }), placement: "top", offset: 0, container: !1, fallbackPlacement: "flip", boundary: "scrollParent" }, we = "out", Ne = { HIDE: "hide" + Ee, HIDDEN: "hidden" + Ee, SHOW: (De = "show") + Ee, SHOWN: "shown" + Ee, INSERTED: "inserted" + Ee, CLICK: "click" + Ee, FOCUSIN: "focusin" + Ee, FOCUSOUT: "focusout" + Ee, MOUSEENTER: "mouseenter" + Ee, MOUSELEAVE: "mouseleave" + Ee }, Oe = "fade", ke = "show", Pe = ".tooltip-inner", je = ".arrow", He = "hover", Le = "focus", Re = "click", xe = "manual", We = function () { function i(t, e) { if ("undefined" == typeof h) throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)"); this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners() } var t = i.prototype; return t.enable = function () { this._isEnabled = !0 }, t.disable = function () { this._isEnabled = !1 }, t.toggleEnabled = function () { this._isEnabled = !this._isEnabled }, t.toggle = function (t) { if (this._isEnabled) if (t) { var e = this.constructor.DATA_KEY, n = pe(t.currentTarget).data(e); n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), pe(t.currentTarget).data(e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n) } else { if (pe(this.getTipElement()).hasClass(ke)) return void this._leave(null, this); this._enter(null, this) } }, t.dispose = function () { clearTimeout(this._timeout), pe.removeData(this.element, this.constructor.DATA_KEY), pe(this.element).off(this.constructor.EVENT_KEY), pe(this.element).closest(".modal").off("hide.bs.modal"), this.tip && pe(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, (this._activeTrigger = null) !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null }, t.show = function () { var e = this; if ("none" === pe(this.element).css("display")) throw new Error("Please use show on visible elements"); var t = pe.Event(this.constructor.Event.SHOW); if (this.isWithContent() && this._isEnabled) { pe(this.element).trigger(t); var n = pe.contains(this.element.ownerDocument.documentElement, this.element); if (t.isDefaultPrevented() || !n) return; var i = this.getTipElement(), r = Fn.getUID(this.constructor.NAME); i.setAttribute("id", r), this.element.setAttribute("aria-describedby", r), this.setContent(), this.config.animation && pe(i).addClass(Oe); var o = "function" == typeof this.config.placement ? this.config.placement.call(this, i, this.element) : this.config.placement, s = this._getAttachment(o); this.addAttachmentClass(s); var a = !1 === this.config.container ? document.body : pe(document).find(this.config.container); pe(i).data(this.constructor.DATA_KEY, this), pe.contains(this.element.ownerDocument.documentElement, this.tip) || pe(i).appendTo(a), pe(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new h(this.element, i, { placement: s, modifiers: { offset: { offset: this.config.offset }, flip: { behavior: this.config.fallbackPlacement }, arrow: { element: je }, preventOverflow: { boundariesElement: this.config.boundary } }, onCreate: function (t) { t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t) }, onUpdate: function (t) { e._handlePopperPlacementChange(t) } }), pe(i).addClass(ke), "ontouchstart" in document.documentElement && pe(document.body).children().on("mouseover", null, pe.noop); var l = function () { e.config.animation && e._fixTransition(); var t = e._hoverState; e._hoverState = null, pe(e.element).trigger(e.constructor.Event.SHOWN), t === we && e._leave(null, e) }; if (pe(this.tip).hasClass(Oe)) { var c = Fn.getTransitionDurationFromElement(this.tip); pe(this.tip).one(Fn.TRANSITION_END, l).emulateTransitionEnd(c) } else l() } }, t.hide = function (t) { var e = this, n = this.getTipElement(), i = pe.Event(this.constructor.Event.HIDE), r = function () { e._hoverState !== De && n.parentNode && n.parentNode.removeChild(n), e._cleanTipClass(), e.element.removeAttribute("aria-describedby"), pe(e.element).trigger(e.constructor.Event.HIDDEN), null !== e._popper && e._popper.destroy(), t && t() }; if (pe(this.element).trigger(i), !i.isDefaultPrevented()) { if (pe(n).removeClass(ke), "ontouchstart" in document.documentElement && pe(document.body).children().off("mouseover", null, pe.noop), this._activeTrigger[Re] = !1, this._activeTrigger[Le] = !1, this._activeTrigger[He] = !1, pe(this.tip).hasClass(Oe)) { var o = Fn.getTransitionDurationFromElement(n); pe(n).one(Fn.TRANSITION_END, r).emulateTransitionEnd(o) } else r(); this._hoverState = "" } }, t.update = function () { null !== this._popper && this._popper.scheduleUpdate() }, t.isWithContent = function () { return Boolean(this.getTitle()) }, t.addAttachmentClass = function (t) { pe(this.getTipElement()).addClass(Te + "-" + t) }, t.getTipElement = function () { return this.tip = this.tip || pe(this.config.template)[0], this.tip }, t.setContent = function () { var t = this.getTipElement(); this.setElementContent(pe(t.querySelectorAll(Pe)), this.getTitle()), pe(t).removeClass(Oe + " " + ke) }, t.setElementContent = function (t, e) { var n = this.config.html; "object" == typeof e && (e.nodeType || e.jquery) ? n ? pe(e).parent().is(t) || t.empty().append(e) : t.text(pe(e).text()) : t[n ? "html" : "text"](e) }, t.getTitle = function () { var t = this.element.getAttribute("data-original-title"); return t || (t = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t }, t._getAttachment = function (t) { return Ie[t.toUpperCase()] }, t._setListeners = function () { var i = this; this.config.trigger.split(" ").forEach(function (t) { if ("click" === t) pe(i.element).on(i.constructor.Event.CLICK, i.config.selector, function (t) { return i.toggle(t) }); else if (t !== xe) { var e = t === He ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN, n = t === He ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT; pe(i.element).on(e, i.config.selector, function (t) { return i._enter(t) }).on(n, i.config.selector, function (t) { return i._leave(t) }) } pe(i.element).closest(".modal").on("hide.bs.modal", function () { return i.hide() }) }), this.config.selector ? this.config = l({}, this.config, { trigger: "manual", selector: "" }) : this._fixTitle() }, t._fixTitle = function () { var t = typeof this.element.getAttribute("data-original-title"); (this.element.getAttribute("title") || "string" !== t) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", "")) }, t._enter = function (t, e) { var n = this.constructor.DATA_KEY; (e = e || pe(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), pe(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusin" === t.type ? Le : He] = !0), pe(e.getTipElement()).hasClass(ke) || e._hoverState === De ? e._hoverState = De : (clearTimeout(e._timeout), e._hoverState = De, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function () { e._hoverState === De && e.show() }, e.config.delay.show) : e.show()) }, t._leave = function (t, e) { var n = this.constructor.DATA_KEY; (e = e || pe(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), pe(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusout" === t.type ? Le : He] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = we, e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function () { e._hoverState === we && e.hide() }, e.config.delay.hide) : e.hide()) }, t._isWithActiveTrigger = function () { for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0; return !1 }, t._getConfig = function (t) { return "number" == typeof (t = l({}, this.constructor.Default, pe(this.element).data(), "object" == typeof t && t ? t : {})).delay && (t.delay = { show: t.delay, hide: t.delay }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), Fn.typeCheckConfig(ve, t, this.constructor.DefaultType), t }, t._getDelegateConfig = function () { var t = {}; if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]); return t }, t._cleanTipClass = function () { var t = pe(this.getTipElement()), e = t.attr("class").match(be); null !== e && e.length && t.removeClass(e.join("")) }, t._handlePopperPlacementChange = function (t) { var e = t.instance; this.tip = e.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement)) }, t._fixTransition = function () { var t = this.getTipElement(), e = this.config.animation; null === t.getAttribute("x-placement") && (pe(t).removeClass(Oe), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e) }, i._jQueryInterface = function (n) { return this.each(function () { var t = pe(this).data(ye), e = "object" == typeof n && n; if ((t || !/dispose|hide/.test(n)) && (t || (t = new i(this, e), pe(this).data(ye, t)), "string" == typeof n)) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n]() } }) }, s(i, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return Ae } }, { key: "NAME", get: function () { return ve } }, { key: "DATA_KEY", get: function () { return ye } }, { key: "Event", get: function () { return Ne } }, { key: "EVENT_KEY", get: function () { return Ee } }, { key: "DefaultType", get: function () { return Se } }]), i }(), pe.fn[ve] = We._jQueryInterface, pe.fn[ve].Constructor = We, pe.fn[ve].noConflict = function () { return pe.fn[ve] = Ce, We._jQueryInterface }, We), Jn = (qe = "popover", Ke = "." + (Fe = "bs.popover"), Me = (Ue = e).fn[qe], Qe = "bs-popover", Be = new RegExp("(^|\\s)" + Qe + "\\S+", "g"), Ve = l({}, zn.Default, { placement: "right", trigger: "click", content: "", template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' }), Ye = l({}, zn.DefaultType, { content: "(string|element|function)" }), ze = "fade", Ze = ".popover-header", Ge = ".popover-body", $e = { HIDE: "hide" + Ke, HIDDEN: "hidden" + Ke, SHOW: (Je = "show") + Ke, SHOWN: "shown" + Ke, INSERTED: "inserted" + Ke, CLICK: "click" + Ke, FOCUSIN: "focusin" + Ke, FOCUSOUT: "focusout" + Ke, MOUSEENTER: "mouseenter" + Ke, MOUSELEAVE: "mouseleave" + Ke }, Xe = function (t) { var e, n; function i() { return t.apply(this, arguments) || this } n = t, (e = i).prototype = Object.create(n.prototype), (e.prototype.constructor = e).__proto__ = n; var r = i.prototype; return r.isWithContent = function () { return this.getTitle() || this._getContent() }, r.addAttachmentClass = function (t) { Ue(this.getTipElement()).addClass(Qe + "-" + t) }, r.getTipElement = function () { return this.tip = this.tip || Ue(this.config.template)[0], this.tip }, r.setContent = function () { var t = Ue(this.getTipElement()); this.setElementContent(t.find(Ze), this.getTitle()); var e = this._getContent(); "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(Ge), e), t.removeClass(ze + " " + Je) }, r._getContent = function () { return this.element.getAttribute("data-content") || this.config.content }, r._cleanTipClass = function () { var t = Ue(this.getTipElement()), e = t.attr("class").match(Be); null !== e && 0 < e.length && t.removeClass(e.join("")) }, i._jQueryInterface = function (n) { return this.each(function () { var t = Ue(this).data(Fe), e = "object" == typeof n ? n : null; if ((t || !/destroy|hide/.test(n)) && (t || (t = new i(this, e), Ue(this).data(Fe, t)), "string" == typeof n)) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n]() } }) }, s(i, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return Ve } }, { key: "NAME", get: function () { return qe } }, { key: "DATA_KEY", get: function () { return Fe } }, { key: "Event", get: function () { return $e } }, { key: "EVENT_KEY", get: function () { return Ke } }, { key: "DefaultType", get: function () { return Ye } }]), i }(zn), Ue.fn[qe] = Xe._jQueryInterface, Ue.fn[qe].Constructor = Xe, Ue.fn[qe].noConflict = function () { return Ue.fn[qe] = Me, Xe._jQueryInterface }, Xe), Zn = (en = "scrollspy", rn = "." + (nn = "bs.scrollspy"), on = (tn = e).fn[en], sn = { offset: 10, method: "auto", target: "" }, an = { offset: "number", method: "string", target: "(string|element)" }, ln = { ACTIVATE: "activate" + rn, SCROLL: "scroll" + rn, LOAD_DATA_API: "load" + rn + ".data-api" }, cn = "dropdown-item", hn = "active", un = '[data-spy="scroll"]', fn = ".active", dn = ".nav, .list-group", gn = ".nav-link", _n = ".nav-item", mn = ".list-group-item", pn = ".dropdown", vn = ".dropdown-item", yn = ".dropdown-toggle", En = "offset", Cn = "position", Tn = function () { function n(t, e) { var n = this; this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " " + gn + "," + this._config.target + " " + mn + "," + this._config.target + " " + vn, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, tn(this._scrollElement).on(ln.SCROLL, function (t) { return n._process(t) }), this.refresh(), this._process() } var t = n.prototype; return t.refresh = function () { var e = this, t = this._scrollElement === this._scrollElement.window ? En : Cn, r = "auto" === this._config.method ? t : this._config.method, o = r === Cn ? this._getScrollTop() : 0; this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function (t) { var e, n = Fn.getSelectorFromElement(t); if (n && (e = document.querySelector(n)), e) { var i = e.getBoundingClientRect(); if (i.width || i.height) return [tn(e)[r]().top + o, n] } return null }).filter(function (t) { return t }).sort(function (t, e) { return t[0] - e[0] }).forEach(function (t) { e._offsets.push(t[0]), e._targets.push(t[1]) }) }, t.dispose = function () { tn.removeData(this._element, nn), tn(this._scrollElement).off(rn), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null }, t._getConfig = function (t) { if ("string" != typeof (t = l({}, sn, "object" == typeof t && t ? t : {})).target) { var e = tn(t.target).attr("id"); e || (e = Fn.getUID(en), tn(t.target).attr("id", e)), t.target = "#" + e } return Fn.typeCheckConfig(en, t, an), t }, t._getScrollTop = function () { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop }, t._getScrollHeight = function () { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) }, t._getOffsetHeight = function () { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height }, t._process = function () { var t = this._getScrollTop() + this._config.offset, e = this._getScrollHeight(), n = this._config.offset + e - this._getOffsetHeight(); if (this._scrollHeight !== e && this.refresh(), n <= t) { var i = this._targets[this._targets.length - 1]; this._activeTarget !== i && this._activate(i) } else { if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear(); for (var r = this._offsets.length; r--;) { this._activeTarget !== this._targets[r] && t >= this._offsets[r] && ("undefined" == typeof this._offsets[r + 1] || t < this._offsets[r + 1]) && this._activate(this._targets[r]) } } }, t._activate = function (e) { this._activeTarget = e, this._clear(); var t = this._selector.split(","); t = t.map(function (t) { return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]' }); var n = tn([].slice.call(document.querySelectorAll(t.join(",")))); n.hasClass(cn) ? (n.closest(pn).find(yn).addClass(hn), n.addClass(hn)) : (n.addClass(hn), n.parents(dn).prev(gn + ", " + mn).addClass(hn), n.parents(dn).prev(_n).children(gn).addClass(hn)), tn(this._scrollElement).trigger(ln.ACTIVATE, { relatedTarget: e }) }, t._clear = function () { var t = [].slice.call(document.querySelectorAll(this._selector)); tn(t).filter(fn).removeClass(hn) }, n._jQueryInterface = function (e) { return this.each(function () { var t = tn(this).data(nn); if (t || (t = new n(this, "object" == typeof e && e), tn(this).data(nn, t)), "string" == typeof e) { if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } }) }, s(n, null, [{ key: "VERSION", get: function () { return "4.1.3" } }, { key: "Default", get: function () { return sn } }]), n }(), tn(window).on(ln.LOAD_DATA_API, function () { for (var t = [].slice.call(document.querySelectorAll(un)), e = t.length; e--;) { var n = tn(t[e]); Tn._jQueryInterface.call(n, n.data()) } }), tn.fn[en] = Tn._jQueryInterface, tn.fn[en].Constructor = Tn, tn.fn[en].noConflict = function () { return tn.fn[en] = on, Tn._jQueryInterface }, Tn), Gn = (In = "." + (Sn = "bs.tab"), An = (bn = e).fn.tab, Dn = { HIDE: "hide" + In, HIDDEN: "hidden" + In, SHOW: "show" + In, SHOWN: "shown" + In, CLICK_DATA_API: "click" + In + ".data-api" }, wn = "dropdown-menu", Nn = "active", On = "disabled", kn = "fade", Pn = "show", jn = ".dropdown", Hn = ".nav, .list-group", Ln = ".active", Rn = "> li > .active", xn = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', Wn = ".dropdown-toggle", Un = "> .dropdown-menu .active", qn = function () { function i(t) { this._element = t } var t = i.prototype; return t.show = function () { var n = this; if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && bn(this._element).hasClass(Nn) || bn(this._element).hasClass(On))) { var t, i, e = bn(this._element).closest(Hn)[0], r = Fn.getSelectorFromElement(this._element); if (e) { var o = "UL" === e.nodeName ? Rn : Ln; i = (i = bn.makeArray(bn(e).find(o)))[i.length - 1] } var s = bn.Event(Dn.HIDE, { relatedTarget: this._element }), a = bn.Event(Dn.SHOW, { relatedTarget: i }); if (i && bn(i).trigger(s), bn(this._element).trigger(a), !a.isDefaultPrevented() && !s.isDefaultPrevented()) { r && (t = document.querySelector(r)), this._activate(this._element, e); var l = function () { var t = bn.Event(Dn.HIDDEN, { relatedTarget: n._element }), e = bn.Event(Dn.SHOWN, { relatedTarget: i }); bn(i).trigger(t), bn(n._element).trigger(e) }; t ? this._activate(t, t.parentNode, l) : l() } } }, t.dispose = function () { bn.removeData(this._element, Sn), this._element = null }, t._activate = function (t, e, n) { var i = this, r = ("UL" === e.nodeName ? bn(e).find(Rn) : bn(e).children(Ln))[0], o = n && r && bn(r).hasClass(kn), s = function () { return i._transitionComplete(t, r, n) }; if (r && o) { var a = Fn.getTransitionDurationFromElement(r); bn(r).one(Fn.TRANSITION_END, s).emulateTransitionEnd(a) } else s() }, t._transitionComplete = function (t, e, n) { if (e) { bn(e).removeClass(Pn + " " + Nn); var i = bn(e.parentNode).find(Un)[0]; i && bn(i).removeClass(Nn), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1) } if (bn(t).addClass(Nn), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), Fn.reflow(t), bn(t).addClass(Pn), t.parentNode && bn(t.parentNode).hasClass(wn)) { var r = bn(t).closest(jn)[0]; if (r) { var o = [].slice.call(r.querySelectorAll(Wn)); bn(o).addClass(Nn) } t.setAttribute("aria-expanded", !0) } n && n() }, i._jQueryInterface = function (n) { return this.each(function () { var t = bn(this), e = t.data(Sn); if (e || (e = new i(this), t.data(Sn, e)), "string" == typeof n) { if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"'); e[n]() } }) }, s(i, null, [{ key: "VERSION", get: function () { return "4.1.3" } }]), i }(), bn(document).on(Dn.CLICK_DATA_API, xn, function (t) { t.preventDefault(), qn._jQueryInterface.call(bn(this), "show") }), bn.fn.tab = qn._jQueryInterface, bn.fn.tab.Constructor = qn, bn.fn.tab.noConflict = function () { return bn.fn.tab = An, qn._jQueryInterface }, qn); !function (t) { if ("undefined" == typeof t) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); var e = t.fn.jquery.split(" ")[0].split("."); if (e[0] < 2 && e[1] < 9 || 1 === e[0] && 9 === e[1] && e[2] < 1 || 4 <= e[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0") }(e), t.Util = Fn, t.Alert = Kn, t.Button = Mn, t.Carousel = Qn, t.Collapse = Bn, t.Dropdown = Vn, t.Modal = Yn, t.Popover = Jn, t.Scrollspy = Zn, t.Tab = Gn, t.Tooltip = zn, Object.defineProperty(t, "__esModule", { value: !0 }) });
//# sourceMappingURL=bootstrap.min.js.map;
