From 92547f26b68b986e5bc4e811f115c5c57dfa54ca Mon Sep 17 00:00:00 2001 From: Manuel Bachmann Date: Thu, 28 Jan 2016 12:26:00 +0100 Subject: Add "dist.prod" directory, modify .gitignore "dist.prod" is a snapshot of compiled application ; it is useful for demos, and because compiling AngularJS code (using npm, gulp...) within Yocto means lots of efforts for little gain. Signed-off-by: Manuel Bachmann --- afm-client/.gitignore | 4 ++-- .../dist.prod/bower_components/foundation-icons.woff | Bin 0 -> 32020 bytes afm-client/dist.prod/bower_components/vendor.min.js | 12 ++++++++++++ afm-client/dist.prod/favicon.ico | Bin 0 -> 1150 bytes .../dist.prod/global_styles/foundation-conf.min.css | 2 ++ afm-client/dist.prod/global_styles/ibz-global.min.css | 2 ++ afm-client/dist.prod/opa/AFBclient.min.css | 8 ++++++++ afm-client/dist.prod/opa/AFBclient.min.js | 2 ++ afm-client/dist.prod/opa/images/appli/isnotvalid.png | Bin 0 -> 9538 bytes afm-client/dist.prod/opa/images/appli/istoobig.png | Bin 0 -> 7784 bytes afm-client/dist.prod/opa/images/appli/upload-appli.png | Bin 0 -> 10094 bytes afm-client/dist.prod/opa/images/appli/w3c-widget.png | Bin 0 -> 6304 bytes afm-client/dist.prod/opa/images/audio/istoobig.png | Bin 0 -> 15144 bytes afm-client/dist.prod/opa/images/audio/upload-music.png | Bin 0 -> 19411 bytes afm-client/dist.prod/opa/images/avatars/istoobig.jpg | Bin 0 -> 7204 bytes afm-client/dist.prod/opa/images/avatars/istoobig.png | Bin 0 -> 15144 bytes afm-client/dist.prod/opa/images/avatars/tux-admin.png | Bin 0 -> 15107 bytes afm-client/dist.prod/opa/images/avatars/tux-bzh.png | Bin 0 -> 18451 bytes afm-client/dist.prod/opa/images/avatars/tux-visitor.png | Bin 0 -> 29307 bytes afm-client/dist.prod/opa/images/icons/annex-ico.png | Bin 0 -> 5286 bytes .../dist.prod/opa/images/icons/memorymatch-ico.png | Bin 0 -> 7181 bytes afm-client/dist.prod/opa/images/icons/rabbit-ico.png | Bin 0 -> 5977 bytes afm-client/dist.prod/opa/images/icons/w3c-ico.png | Bin 0 -> 6697 bytes afm-client/dist.prod/opa/images/login/fb-logo.png | Bin 0 -> 2092 bytes afm-client/dist.prod/opa/images/login/gg-logo.png | Bin 0 -> 2465 bytes afm-client/dist.prod/opa/images/login/gh-logo.png | Bin 0 -> 2779 bytes afm-client/dist.prod/opa/images/login/iot-logo.png | Bin 0 -> 2349 bytes afm-client/dist.prod/opa/images/login/lk-logo.png | Bin 0 -> 2511 bytes afm-client/dist.prod/opa/images/login/ms-logo.png | Bin 0 -> 3024 bytes afm-client/dist.prod/opa/images/login/og-logo.png | Bin 0 -> 2181 bytes afm-client/dist.prod/opa/images/login/pp-logo.png | Bin 0 -> 2236 bytes afm-client/dist.prod/opa/images/login/yh-logo.png | Bin 0 -> 3309 bytes afm-client/dist.prod/opa/images/logo/logo_iot_bzh.svg | 1 + .../dist.prod/opa/images/logo/logo_iot_bzhx350.png | Bin 0 -> 9416 bytes .../dist.prod/opa/images/logo/tampon-iot-bzhx450.png | Bin 0 -> 19420 bytes .../dist.prod/opa/images/logo/triskel_iot_bzh.png | Bin 0 -> 30976 bytes .../dist.prod/opa/images/logo/triskel_iot_bzh.svg | 1 + .../dist.prod/opa/images/logo/triskel_iot_bzhx250.png | Bin 0 -> 9799 bytes afm-client/dist.prod/opa/index.html | 3 +++ 39 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 afm-client/dist.prod/bower_components/foundation-icons.woff create mode 100644 afm-client/dist.prod/bower_components/vendor.min.js create mode 100644 afm-client/dist.prod/favicon.ico create mode 100644 afm-client/dist.prod/global_styles/foundation-conf.min.css create mode 100644 afm-client/dist.prod/global_styles/ibz-global.min.css create mode 100644 afm-client/dist.prod/opa/AFBclient.min.css create mode 100644 afm-client/dist.prod/opa/AFBclient.min.js create mode 100644 afm-client/dist.prod/opa/images/appli/isnotvalid.png create mode 100644 afm-client/dist.prod/opa/images/appli/istoobig.png create mode 100644 afm-client/dist.prod/opa/images/appli/upload-appli.png create mode 100644 afm-client/dist.prod/opa/images/appli/w3c-widget.png create mode 100644 afm-client/dist.prod/opa/images/audio/istoobig.png create mode 100644 afm-client/dist.prod/opa/images/audio/upload-music.png create mode 100644 afm-client/dist.prod/opa/images/avatars/istoobig.jpg create mode 100644 afm-client/dist.prod/opa/images/avatars/istoobig.png create mode 100644 afm-client/dist.prod/opa/images/avatars/tux-admin.png create mode 100644 afm-client/dist.prod/opa/images/avatars/tux-bzh.png create mode 100644 afm-client/dist.prod/opa/images/avatars/tux-visitor.png create mode 100644 afm-client/dist.prod/opa/images/icons/annex-ico.png create mode 100644 afm-client/dist.prod/opa/images/icons/memorymatch-ico.png create mode 100644 afm-client/dist.prod/opa/images/icons/rabbit-ico.png create mode 100644 afm-client/dist.prod/opa/images/icons/w3c-ico.png create mode 100644 afm-client/dist.prod/opa/images/login/fb-logo.png create mode 100644 afm-client/dist.prod/opa/images/login/gg-logo.png create mode 100644 afm-client/dist.prod/opa/images/login/gh-logo.png create mode 100644 afm-client/dist.prod/opa/images/login/iot-logo.png create mode 100644 afm-client/dist.prod/opa/images/login/lk-logo.png create mode 100644 afm-client/dist.prod/opa/images/login/ms-logo.png create mode 100644 afm-client/dist.prod/opa/images/login/og-logo.png create mode 100644 afm-client/dist.prod/opa/images/login/pp-logo.png create mode 100644 afm-client/dist.prod/opa/images/login/yh-logo.png create mode 100644 afm-client/dist.prod/opa/images/logo/logo_iot_bzh.svg create mode 100644 afm-client/dist.prod/opa/images/logo/logo_iot_bzhx350.png create mode 100644 afm-client/dist.prod/opa/images/logo/tampon-iot-bzhx450.png create mode 100644 afm-client/dist.prod/opa/images/logo/triskel_iot_bzh.png create mode 100644 afm-client/dist.prod/opa/images/logo/triskel_iot_bzh.svg create mode 100644 afm-client/dist.prod/opa/images/logo/triskel_iot_bzhx250.png create mode 100644 afm-client/dist.prod/opa/index.html (limited to 'afm-client') diff --git a/afm-client/.gitignore b/afm-client/.gitignore index bb6f2ab..ba5820b 100644 --- a/afm-client/.gitignore +++ b/afm-client/.gitignore @@ -1,7 +1,7 @@ -bower_components/ +#bower_components/ node_modules/ dist.dev/ -dist.prod/ +#dist.prod/ *.DS_Store nbproject/private/ .noderc* diff --git a/afm-client/dist.prod/bower_components/foundation-icons.woff b/afm-client/dist.prod/bower_components/foundation-icons.woff new file mode 100644 index 0000000..e2cfe25 Binary files /dev/null and b/afm-client/dist.prod/bower_components/foundation-icons.woff differ diff --git a/afm-client/dist.prod/bower_components/vendor.min.js b/afm-client/dist.prod/bower_components/vendor.min.js new file mode 100644 index 0000000..b849ecc --- /dev/null +++ b/afm-client/dist.prod/bower_components/vendor.min.js @@ -0,0 +1,12 @@ +!function(t,e,n){"use strict";function r(t,e){return e=e||Error,function(){var n,r,i=arguments[0],o="["+(t?t+":":"")+i+"] ",a=arguments[1],s=arguments;for(n=o+a.replace(/\{\d+\}/g,function(t){var e=+t.slice(1,-1);return e+20&&e-1 in t}function o(t,e,n){var r,a;if(t)if(x(t))for(r in t)"prototype"==r||"length"==r||"name"==r||t.hasOwnProperty&&!t.hasOwnProperty(r)||e.call(n,t[r],r,t);else if(dr(t)||i(t)){var s="object"!=typeof t;for(r=0,a=t.length;a>r;r++)(s||r in t)&&e.call(n,t[r],r,t)}else if(t.forEach&&t.forEach!==o)t.forEach(e,n,t);else for(r in t)t.hasOwnProperty(r)&&e.call(n,t[r],r,t);return t}function a(t){return Object.keys(t).sort()}function s(t,e,n){for(var r=a(t),i=0;in;n++){var i=arguments[n];if(i)for(var o=Object.keys(i),a=0,s=o.length;s>a;a++){var u=o[a];t[u]=i[u]}}return l(t,e),t}function h(t){return parseInt(t,10)}function d(t,e){return f(Object.create(t),e)}function p(){}function m(t){return t}function v(t){return function(){return t}}function g(t){return"undefined"==typeof t}function $(t){return"undefined"!=typeof t}function y(t){return null!==t&&"object"==typeof t}function b(t){return"string"==typeof t}function w(t){return"number"==typeof t}function _(t){return"[object Date]"===ur.call(t)}function x(t){return"function"==typeof t}function C(t){return"[object RegExp]"===ur.call(t)}function E(t){return t&&t.window===t}function k(t){return t&&t.$evalAsync&&t.$watch}function A(t){return"[object File]"===ur.call(t)}function S(t){return"[object FormData]"===ur.call(t)}function T(t){return"[object Blob]"===ur.call(t)}function O(t){return"boolean"==typeof t}function I(t){return t&&x(t.then)}function z(t){return!(!t||!(t.nodeName||t.prop&&t.attr&&t.find))}function M(t){var e,n={},r=t.split(",");for(e=0;e=0&&t.splice(n,1),e}function N(t,e,n,r){if(E(t)||k(t))throw cr("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(e){if(t===e)throw cr("cpi","Can't copy! Source and destination are identical.");if(n=n||[],r=r||[],y(t)){var i=n.indexOf(t);if(-1!==i)return r[i];n.push(t),r.push(e)}var a;if(dr(t)){e.length=0;for(var s=0;sn;n++)e[n]=t[n]}else if(y(t)){e=e||{};for(var i in t)("$"!==i.charAt(0)||"$"!==i.charAt(1))&&(e[i]=t[i])}return e||t}function R(t,e){if(t===e)return!0;if(null===t||null===e)return!1;if(t!==t&&e!==e)return!0;var r,i,o,a=typeof t,s=typeof e;if(a==s&&"object"==a){if(!dr(t)){if(_(t))return _(e)?R(t.getTime(),e.getTime()):!1;if(C(t))return C(e)?t.toString()==e.toString():!1;if(k(t)||k(e)||E(t)||E(e)||dr(e)||_(e)||C(e))return!1;o={};for(i in t)if("$"!==i.charAt(0)&&!x(t[i])){if(!R(t[i],e[i]))return!1;o[i]=!0}for(i in e)if(!o.hasOwnProperty(i)&&"$"!==i.charAt(0)&&e[i]!==n&&!x(e[i]))return!1;return!0}if(!dr(e))return!1;if((r=t.length)==e.length){for(i=0;r>i;i++)if(!R(t[i],e[i]))return!1;return!0}}return!1}function F(t,e,n){return t.concat(or.call(e,n))}function B(t,e){return or.call(t,e||0)}function L(t,e){var n=arguments.length>2?B(arguments,2):[];return!x(e)||e instanceof RegExp?e:n.length?function(){return arguments.length?e.apply(t,F(n,arguments,0)):e.apply(t,n)}:function(){return arguments.length?e.apply(t,arguments):e.call(t)}}function U(t,r){var i=r;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=n:E(r)?i="$WINDOW":r&&e===r?i="$DOCUMENT":k(r)&&(i="$SCOPE"),i}function V(t,e){return"undefined"==typeof t?n:(w(e)||(e=e?2:null),JSON.stringify(t,U,e))}function q(t){return b(t)?JSON.parse(t):t}function H(t){t=nr(t).clone();try{t.empty()}catch(e){}var n=nr("
").append(t).html();try{return t[0].nodeType===_r?Gn(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(t,e){return"<"+Gn(e)})}catch(e){return Gn(n)}}function W(t){try{return decodeURIComponent(t)}catch(e){}}function X(t){var e,n,r={};return o((t||"").split("&"),function(t){if(t&&(e=t.replace(/\+/g,"%20").split("="),n=W(e[0]),$(n))){var i=$(e[1])?W(e[1]):!0;Kn.call(r,n)?dr(r[n])?r[n].push(i):r[n]=[r[n],i]:r[n]=i}}),r}function Y(t){var e=[];return o(t,function(t,n){dr(t)?o(t,function(t){e.push(G(n,!0)+(t===!0?"":"="+G(t,!0)))}):e.push(G(n,!0)+(t===!0?"":"="+G(t,!0)))}),e.length?e.join("&"):""}function Z(t){return G(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function G(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,e?"%20":"+")}function K(t,e){var n,r,i=gr.length;for(t=nr(t),r=0;i>r;++r)if(n=gr[r]+e,b(n=t.attr(n)))return n;return null}function J(t,e){var n,r,i={};o(gr,function(e){var i=e+"app";!n&&t.hasAttribute&&t.hasAttribute(i)&&(n=t,r=t.getAttribute(i))}),o(gr,function(e){var i,o=e+"app";!n&&(i=t.querySelector("["+o.replace(":","\\:")+"]"))&&(n=i,r=i.getAttribute(o))}),n&&(i.strictDi=null!==K(n,"strict-di"),e(n,r?[r]:[],i))}function Q(n,r,i){y(i)||(i={});var a={strictDi:!1};i=f(a,i);var s=function(){if(n=nr(n),n.injector()){var t=n[0]===e?"document":H(n);throw cr("btstrpd","App Already Bootstrapped with this Element '{0}'",t.replace(//,">"))}r=r||[],r.unshift(["$provide",function(t){t.value("$rootElement",n)}]),i.debugInfoEnabled&&r.push(["$compileProvider",function(t){t.debugInfoEnabled(!0)}]),r.unshift("ng");var o=qt(r,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(t,e,n,r){t.$apply(function(){e.data("$injector",r),n(e)(t)})}]),o},u=/^NG_ENABLE_DEBUG_INFO!/,c=/^NG_DEFER_BOOTSTRAP!/;return t&&u.test(t.name)&&(i.debugInfoEnabled=!0,t.name=t.name.replace(u,"")),t&&!c.test(t.name)?s():(t.name=t.name.replace(c,""),lr.resumeBootstrap=function(t){return o(t,function(t){r.push(t)}),s()},void(x(lr.resumeDeferredBootstrap)&&lr.resumeDeferredBootstrap()))}function tt(){t.name="NG_ENABLE_DEBUG_INFO!"+t.name,t.location.reload()}function et(t){var e=lr.element(t).injector();if(!e)throw cr("test","no injector found for element argument to getTestability");return e.get("$$testability")}function nt(t,e){return e=e||"_",t.replace($r,function(t,n){return(n?e:"")+t.toLowerCase()})}function rt(){var e;yr||(rr=t.jQuery,rr&&rr.fn.on?(nr=rr,f(rr.fn,{scope:Br.scope,isolateScope:Br.isolateScope,controller:Br.controller,injector:Br.injector,inheritedData:Br.inheritedData}),e=rr.cleanData,rr.cleanData=function(t){var n;if(hr)hr=!1;else for(var r,i=0;null!=(r=t[i]);i++)n=rr._data(r,"events"),n&&n.$destroy&&rr(r).triggerHandler("$destroy");e(t)}):nr=bt,lr.element=nr,yr=!0)}function it(t,e,n){if(!t)throw cr("areq","Argument '{0}' is {1}",e||"?",n||"required");return t}function ot(t,e,n){return n&&dr(t)&&(t=t[t.length-1]),it(x(t),e,"not a function, got "+(t&&"object"==typeof t?t.constructor.name||"Object":typeof t)),t}function at(t,e){if("hasOwnProperty"===t)throw cr("badname","hasOwnProperty is not a valid {0} name",e)}function st(t,e,n){if(!e)return t;for(var r,i=e.split("."),o=t,a=i.length,s=0;a>s;s++)r=i[s],t&&(t=(o=t)[r]);return!n&&x(t)?L(o,t):t}function ut(t){var e=t[0],n=t[t.length-1],r=[e];do{if(e=e.nextSibling,!e)break;r.push(e)}while(e!==n);return nr(r)}function ct(){return Object.create(null)}function lt(t){function e(t,e,n){return t[e]||(t[e]=n())}var n=r("$injector"),i=r("ng"),o=e(t,"angular",Object);return o.$$minErr=o.$$minErr||r,e(o,"module",function(){var t={};return function(r,o,a){var s=function(t,e){if("hasOwnProperty"===t)throw i("badname","hasOwnProperty is not a valid {0} name",e)};return s(r,"module"),o&&t.hasOwnProperty(r)&&(t[r]=null),e(t,r,function(){function t(t,n,r,i){return i||(i=e),function(){return i[r||"push"]([t,n,arguments]),c}}if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",r);var e=[],i=[],s=[],u=t("$injector","invoke","push",i),c={_invokeQueue:e,_configBlocks:i,_runBlocks:s,requires:o,name:r,provider:t("$provide","provider"),factory:t("$provide","factory"),service:t("$provide","service"),value:t("$provide","value"),constant:t("$provide","constant","unshift"),animation:t("$animateProvider","register"),filter:t("$filterProvider","register"),controller:t("$controllerProvider","register"),directive:t("$compileProvider","directive"),config:u,run:function(t){return s.push(t),this}};return a&&u(a),c})}})}function ft(t){var e=[];return JSON.stringify(t,function(t,n){if(n=U(t,n),y(n)){if(e.indexOf(n)>=0)return"<>";e.push(n)}return n})}function ht(t){return"function"==typeof t?t.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof t?"undefined":"string"!=typeof t?ft(t):t}function dt(e){f(e,{bootstrap:Q,copy:N,extend:f,equals:R,element:nr,forEach:o,injector:qt,noop:p,bind:L,toJson:V,fromJson:q,identity:m,isUndefined:g,isDefined:$,isString:b,isFunction:x,isObject:y,isNumber:w,isElement:z,isArray:dr,version:kr,isDate:_,lowercase:Gn,uppercase:Jn,callbacks:{counter:0},getTestability:et,$$minErr:r,$$csp:vr,reloadWithDebugInfo:tt}),ir=lt(t);try{ir("ngLocale")}catch(n){ir("ngLocale",[]).provider("$locale",ve)}ir("ng",["ngLocale"],["$provide",function(t){t.provider({$$sanitizeUri:Ze}),t.provider("$compile",Kt).directive({a:zi,input:Zi,textarea:Zi,form:Pi,script:Fo,select:Uo,style:qo,option:Vo,ngBind:Ji,ngBindHtml:to,ngBindTemplate:Qi,ngClass:no,ngClassEven:io,ngClassOdd:ro,ngCloak:oo,ngController:ao,ngForm:Ri,ngHide:Mo,ngIf:co,ngInclude:lo,ngInit:ho,ngNonBindable:Ao,ngPluralize:So,ngRepeat:To,ngShow:zo,ngStyle:Do,ngSwitch:jo,ngSwitchWhen:No,ngSwitchDefault:Po,ngOptions:Lo,ngTransclude:Ro,ngModel:Co,ngList:po,ngChange:eo,pattern:Wo,ngPattern:Wo,required:Ho,ngRequired:Ho,minlength:Yo,ngMinlength:Yo,maxlength:Xo,ngMaxlength:Xo,ngValue:Ki,ngModelOptions:ko}).directive({ngInclude:fo}).directive(Mi).directive(so),t.provider({$anchorScroll:Ht,$animate:Gr,$browser:Yt,$cacheFactory:Zt,$controller:ee,$document:ne,$exceptionHandler:re,$filter:un,$interpolate:pe,$interval:me,$http:le,$httpBackend:he,$location:Oe,$log:Ie,$parse:Ve,$rootScope:Ye,$q:qe,$$q:He,$sce:Qe,$sceDelegate:Je,$sniffer:tn,$templateCache:Gt,$templateRequest:en,$$testability:nn,$timeout:rn,$window:sn,$$rAF:Xe,$$asyncCallback:Wt,$$jqLite:Ft})}])}function pt(){return++Sr}function mt(t){return t.replace(Ir,function(t,e,n,r){return r?n.toUpperCase():n}).replace(zr,"Moz$1")}function vt(t){return!Nr.test(t)}function gt(t){var e=t.nodeType;return e===br||!e||e===Cr}function $t(t,e){var n,r,i,a,s=e.createDocumentFragment(),u=[];if(vt(t))u.push(e.createTextNode(t));else{for(n=n||s.appendChild(e.createElement("div")),r=(Pr.exec(t)||["",""])[1].toLowerCase(),i=Fr[r]||Fr._default,n.innerHTML=i[1]+t.replace(Rr,"<$1>")+i[2],a=i[0];a--;)n=n.lastChild;u=F(u,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",o(u,function(t){s.appendChild(t)}),s}function yt(t,n){n=n||e;var r;return(r=jr.exec(t))?[n.createElement(r[1])]:(r=$t(t,n))?r.childNodes:[]}function bt(t){if(t instanceof bt)return t;var e;if(b(t)&&(t=pr(t),e=!0),!(this instanceof bt)){if(e&&"<"!=t.charAt(0))throw Dr("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new bt(t)}e?Ot(this,yt(t)):Ot(this,t)}function wt(t){return t.cloneNode(!0)}function _t(t,e){if(e||Ct(t),t.querySelectorAll)for(var n=t.querySelectorAll("*"),r=0,i=n.length;i>r;r++)Ct(n[r])}function xt(t,e,n,r){if($(r))throw Dr("offargs","jqLite#off() does not support the `selector` argument");var i=Et(t),a=i&&i.events,s=i&&i.handle;if(s)if(e)o(e.split(" "),function(e){if($(n)){var r=a[e];if(j(r||[],n),r&&r.length>0)return}Or(t,e,s),delete a[e]});else for(e in a)"$destroy"!==e&&Or(t,e,s),delete a[e]}function Ct(t,e){var r=t.ng339,i=r&&Ar[r];if(i){if(e)return void delete i.data[e];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),xt(t)),delete Ar[r],t.ng339=n}}function Et(t,e){var r=t.ng339,i=r&&Ar[r];return e&&!i&&(t.ng339=r=pt(),i=Ar[r]={events:{},data:{},handle:n}),i}function kt(t,e,n){if(gt(t)){var r=$(n),i=!r&&e&&!y(e),o=!e,a=Et(t,!i),s=a&&a.data;if(r)s[e]=n;else{if(o)return s;if(i)return s&&s[e];f(s,e)}}}function At(t,e){return t.getAttribute?(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+e+" ")>-1:!1}function St(t,e){e&&t.setAttribute&&o(e.split(" "),function(e){t.setAttribute("class",pr((" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+pr(e)+" "," ")))})}function Tt(t,e){if(e&&t.setAttribute){var n=(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(e.split(" "),function(t){t=pr(t),-1===n.indexOf(" "+t+" ")&&(n+=t+" ")}),t.setAttribute("class",pr(n))}}function Ot(t,e){if(e)if(e.nodeType)t[t.length++]=e;else{var n=e.length;if("number"==typeof n&&e.window!==e){if(n)for(var r=0;n>r;r++)t[t.length++]=e[r]}else t[t.length++]=e}}function It(t,e){return zt(t,"$"+(e||"ngController")+"Controller")}function zt(t,e,r){t.nodeType==Cr&&(t=t.documentElement);for(var i=dr(e)?e:[e];t;){for(var o=0,a=i.length;a>o;o++)if((r=nr.data(t,i[o]))!==n)return r;t=t.parentNode||t.nodeType===Er&&t.host}}function Mt(t){for(_t(t,!0);t.firstChild;)t.removeChild(t.firstChild)}function Dt(t,e){e||_t(t);var n=t.parentNode;n&&n.removeChild(t)}function jt(e,n){n=n||t,"complete"===n.document.readyState?n.setTimeout(e):nr(n).on("load",e)}function Nt(t,e){var n=Lr[e.toLowerCase()];return n&&Ur[D(t)]&&n}function Pt(t,e){var n=t.nodeName;return("INPUT"===n||"TEXTAREA"===n)&&Vr[e]}function Rt(t,e){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=e[r||n.type],o=i?i.length:0;if(o){if(g(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},o>1&&(i=P(i));for(var s=0;o>s;s++)n.isImmediatePropagationStopped()||i[s].call(t,n)}};return n.elem=t,n}function Ft(){this.$get=function(){return f(bt,{hasClass:function(t,e){return t.attr&&(t=t[0]),At(t,e)},addClass:function(t,e){return t.attr&&(t=t[0]),Tt(t,e)},removeClass:function(t,e){return t.attr&&(t=t[0]),St(t,e)}})}}function Bt(t,e){var n=t&&t.$$hashKey;if(n)return"function"==typeof n&&(n=t.$$hashKey()),n;var r=typeof t;return n="function"==r||"object"==r&&null!==t?t.$$hashKey=r+":"+(e||c)():r+":"+t}function Lt(t,e){if(e){var n=0;this.nextUid=function(){return++n}}o(t,this.put,this)}function Ut(t){var e=t.toString().replace(Xr,""),n=e.match(qr);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Vt(t,e,n){var r,i,a,s;if("function"==typeof t){if(!(r=t.$inject)){if(r=[],t.length){if(e)throw b(n)&&n||(n=t.name||Ut(t)),Yr("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i=t.toString().replace(Xr,""),a=i.match(qr),o(a[1].split(Hr),function(t){t.replace(Wr,function(t,e,n){r.push(n)})})}t.$inject=r}}else dr(t)?(s=t.length-1,ot(t[s],"fn"),r=t.slice(0,s)):ot(t,"fn",!0);return r}function qt(t,e){function r(t){return function(e,n){return y(e)?void o(e,u(t)):t(e,n)}}function i(t,e){if(at(t,"service"),(x(e)||dr(e))&&(e=k.instantiate(e)),!e.$get)throw Yr("pget","Provider '{0}' must define $get factory method.",t);return E[t+w]=e}function a(t,e){return function(){var n=S.invoke(e,this);if(g(n))throw Yr("undef","Provider '{0}' must return a value from $get factory method.",t);return n}}function s(t,e,n){return i(t,{$get:n!==!1?a(t,e):e})}function c(t,e){return s(t,["$injector",function(t){return t.instantiate(e)}])}function l(t,e){return s(t,v(e),!1)}function f(t,e){at(t,"constant"),E[t]=e,A[t]=e}function h(t,e){var n=k.get(t+w),r=n.$get;n.$get=function(){var t=S.invoke(r,n);return S.invoke(e,null,{$delegate:t})}}function d(t){var e,n=[];return o(t,function(t){function r(t){var e,n;for(e=0,n=t.length;n>e;e++){var r=t[e],i=k.get(r[0]);i[r[1]].apply(i,r[2])}}if(!C.get(t)){C.put(t,!0);try{b(t)?(e=ir(t),n=n.concat(d(e.requires)).concat(e._runBlocks),r(e._invokeQueue),r(e._configBlocks)):x(t)?n.push(k.invoke(t)):dr(t)?n.push(k.invoke(t)):ot(t,"module")}catch(i){throw dr(t)&&(t=t[t.length-1]),i.message&&i.stack&&-1==i.stack.indexOf(i.message)&&(i=i.message+"\n"+i.stack),Yr("modulerr","Failed to instantiate module {0} due to:\n{1}",t,i.stack||i.message||i)}}}),n}function m(t,n){function r(e,r){if(t.hasOwnProperty(e)){if(t[e]===$)throw Yr("cdep","Circular dependency found: {0}",e+" <- "+_.join(" <- "));return t[e]}try{return _.unshift(e),t[e]=$,t[e]=n(e,r)}catch(i){throw t[e]===$&&delete t[e],i}finally{_.shift()}}function i(t,n,i,o){"string"==typeof i&&(o=i,i=null);var a,s,u,c=[],l=qt.$$annotate(t,e,o);for(s=0,a=l.length;a>s;s++){if(u=l[s],"string"!=typeof u)throw Yr("itkn","Incorrect injection token! Expected service name as string, got {0}",u);c.push(i&&i.hasOwnProperty(u)?i[u]:r(u,o))}return dr(t)&&(t=t[a]),t.apply(n,c)}function o(t,e,n){var r=Object.create((dr(t)?t[t.length-1]:t).prototype||null),o=i(t,r,e,n);return y(o)||x(o)?o:r}return{invoke:i,instantiate:o,get:r,annotate:qt.$$annotate,has:function(e){return E.hasOwnProperty(e+w)||t.hasOwnProperty(e)}}}e=e===!0;var $={},w="Provider",_=[],C=new Lt([],!0),E={$provide:{provider:r(i),factory:r(s),service:r(c),value:r(l),constant:r(f),decorator:h}},k=E.$injector=m(E,function(t,e){throw lr.isString(e)&&_.push(e),Yr("unpr","Unknown provider: {0}",_.join(" <- "))}),A={},S=A.$injector=m(A,function(t,e){var r=k.get(t+w,e);return S.invoke(r.$get,r,n,t)});return o(d(t),function(t){S.invoke(t||p)}),S}function Ht(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(e,n,r){function i(t){var e=null;return Array.prototype.some.call(t,function(t){return"a"===D(t)?(e=t,!0):void 0}),e}function o(){var t=s.yOffset;if(x(t))t=t();else if(z(t)){var n=t[0],r=e.getComputedStyle(n);t="fixed"!==r.position?0:n.getBoundingClientRect().bottom}else w(t)||(t=0);return t}function a(t){if(t){t.scrollIntoView();var n=o();if(n){var r=t.getBoundingClientRect().top;e.scrollBy(0,r-n)}}else e.scrollTo(0,0)}function s(){var t,e=n.hash();e?(t=u.getElementById(e))?a(t):(t=i(u.getElementsByName(e)))?a(t):"top"===e&&a(null):a(null)}var u=e.document;return t&&r.$watch(function(){return n.hash()},function(t,e){(t!==e||""!==t)&&jt(function(){r.$evalAsync(s)})}),s}]}function Wt(){this.$get=["$$rAF","$timeout",function(t,e){return t.supported?function(e){return t(e)}:function(t){return e(t,0,!1)}}]}function Xt(t,e,r,i){function a(t){try{t.apply(null,B(arguments,1))}finally{if(C--,0===C)for(;E.length;)try{E.pop()()}catch(e){r.error(e)}}}function s(t){var e=t.indexOf("#");return-1===e?"":t.substr(e)}function u(t,e){!function n(){o(A,function(t){t()}),k=e(n,t)}()}function c(){f(),h()}function l(){try{return y.state}catch(t){}}function f(){S=l(),S=g(S)?null:S,R(S,j)&&(S=j),j=S}function h(){(O!==m.url()||T!==S)&&(O=m.url(),T=S,o(M,function(t){t(m.url(),S)}))}function d(t){try{return decodeURIComponent(t)}catch(e){return t}}var m=this,v=e[0],$=t.location,y=t.history,w=t.setTimeout,_=t.clearTimeout,x={};m.isMock=!1;var C=0,E=[];m.$$completeOutstandingRequest=a,m.$$incOutstandingRequestCount=function(){C++},m.notifyWhenNoOutstandingRequests=function(t){o(A,function(t){t()}),0===C?t():E.push(t)};var k,A=[];m.addPollFn=function(t){return g(k)&&u(100,w),A.push(t),t};var S,T,O=$.href,I=e.find("base"),z=null;f(),T=S,m.url=function(e,n,r){if(g(r)&&(r=null),$!==t.location&&($=t.location),y!==t.history&&(y=t.history),e){var o=T===r;if(O===e&&(!i.history||o))return m;var a=O&&we(O)===we(e);return O=e,T=r,!i.history||a&&o?((!a||z)&&(z=e),n?$.replace(e):a?$.hash=s(e):$.href=e):(y[n?"replaceState":"pushState"](r,"",e),f(),T=S),m}return z||$.href.replace(/%27/g,"'")},m.state=function(){return S};var M=[],D=!1,j=null;m.onUrlChange=function(e){return D||(i.history&&nr(t).on("popstate",c),nr(t).on("hashchange",c),D=!0),M.push(e),e},m.$$checkUrlChange=h,m.baseHref=function(){var t=I.attr("href");return t?t.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var N={},P="",F=m.baseHref();m.cookies=function(t,e){var i,o,a,s,u;if(!t){if(v.cookie!==P)for(P=v.cookie,o=P.split("; "),N={},s=0;s0&&(t=d(a.substring(0,u)),N[t]===n&&(N[t]=d(a.substring(u+1))));return N}e===n?v.cookie=encodeURIComponent(t)+"=;path="+F+";expires=Thu, 01 Jan 1970 00:00:00 GMT":b(e)&&(i=(v.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)+";path="+F).length+1,i>4096&&r.warn("Cookie '"+t+"' possibly not set or overflowed because it was too large ("+i+" > 4096 bytes)!"))},m.defer=function(t,e){var n;return C++,n=w(function(){delete x[n],a(t)},e||0),x[n]=!0,n},m.defer.cancel=function(t){return x[t]?(delete x[t],_(t),a(p),!0):!1}}function Yt(){this.$get=["$window","$log","$sniffer","$document",function(t,e,n,r){return new Xt(t,r,e,n)}]}function Zt(){this.$get=function(){function t(t,n){function i(t){t!=h&&(d?d==t&&(d=t.n):d=t,o(t.n,t.p),o(t,h),h=t,h.n=null)}function o(t,e){t!=e&&(t&&(t.p=e),e&&(e.n=t))}if(t in e)throw r("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var a=0,s=f({},n,{id:t}),u={},c=n&&n.capacity||Number.MAX_VALUE,l={},h=null,d=null;return e[t]={put:function(t,e){if(cc&&this.remove(d.key),e},get:function(t){if(c").parent()[0])});var a=M(t,e,t,n,r,i);I.$$addScopeClass(t);var s=null;return function(e,n,r){it(e,"scope"),r=r||{};var i=r.parentBoundTranscludeFn,o=r.transcludeControllers,u=r.futureParentElement;i&&i.$$boundTransclude&&(i=i.$$boundTransclude),s||(s=z(u));var c;if(c="html"!==s?nr(J(s,nr("
").append(t).html())):n?Br.clone.call(t):t,o)for(var l in o)c.data("$"+l+"Controller",o[l].instance);return I.$$addScopeInfo(c,e),n&&n(c,e),a&&a(e,c,c,i),c}}function z(t){var e=t&&t[0];return e&&"foreignobject"!==D(e)&&e.toString().match(/SVG/)?"svg":"html"}function M(t,e,r,i,o,a){function s(t,r,i,o){var a,s,u,c,l,f,h,d,v;if(p){var g=r.length;for(v=new Array(g),l=0;ll;)u=v[m[l++]],a=m[l++],s=m[l++],a?(a.scope?(c=t.$new(),I.$$addScopeInfo(nr(u),c)):c=t,d=a.transcludeOnThisElement?N(t,a.transclude,o,a.elementTranscludeOnThisElement):!a.templateOnThisElement&&o?o:!o&&e?N(t,e):null,a(s,c,u,i,d)):s&&s(t,u.childNodes,n,o)}for(var u,c,l,f,h,d,p,m=[],v=0;v$;$++){var _=!1,x=!1;f=g[$],h=f.name,m=pr(f.value),p=Jt(h),(v=ft.test(p))&&(h=h.replace(Jr,"").substr(8).replace(/_(.)/g,function(t,e){return e.toUpperCase()}));var C=p.replace(/(Start|End)$/,"");W(C)&&p===C+"Start"&&(_=h,x=h.substr(0,h.length-5)+"end",h=h.substr(0,h.length-6)),d=Jt(h.toLowerCase()),u[d]=h,(v||!n.hasOwnProperty(d))&&(n[d]=m,Nt(t,d)&&(n[d]=!0)),tt(t,e,m,d,v),q(e,d,"A",r,i,_,x)}if(a=t.className,y(a)&&(a=a.animVal),b(a)&&""!==a)for(;o=l.exec(a);)d=Jt(o[2]),q(e,d,"C",r,i)&&(n[d]=pr(o[3])),a=a.substr(o.index+o[0].length);break;case _r:K(e,t.nodeValue);break;case xr:try{o=c.exec(t.nodeValue),o&&(d=Jt(o[1]),q(e,d,"M",r,i)&&(n[d]=pr(o[2])))}catch(E){}}return e.sort(Z),e}function F(t,e,n){var r=[],i=0;if(e&&t.hasAttribute&&t.hasAttribute(e)){do{if(!t)throw Kr("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",e,n);t.nodeType==br&&(t.hasAttribute(e)&&i++,t.hasAttribute(n)&&i--),r.push(t),t=t.nextSibling}while(i>0)}else r.push(t);return nr(r)}function L(t,e,n){return function(r,i,o,a,s){return i=F(i[0],e,n),t(r,i,o,a,s)}}function U(t,a,s,u,c,l,f,h,d){function p(t,e,n,r){t&&(n&&(t=L(t,n,r)),t.require=E.require,t.directiveName=A,(D===E||E.$$isolateScope)&&(t=rt(t,{isolateScope:!0})),f.push(t)),e&&(n&&(e=L(e,n,r)),e.require=E.require,e.directiveName=A,(D===E||E.$$isolateScope)&&(e=rt(e,{isolateScope:!0})),h.push(e))}function m(t,e,n,r){var i,a,s="data",u=!1,c=n;if(b(e)){if(a=e.match(g),e=e.substring(a[0].length),a[3]&&(a[1]?a[3]=null:a[1]=a[3]),"^"===a[1]?s="inheritedData":"^^"===a[1]&&(s="inheritedData",c=n.parent()),"?"===a[2]&&(u=!0),i=null,r&&"data"===s&&(i=r[e])&&(i=i.instance),i=i||c[s]("$"+e+"Controller"),!i&&!u)throw Kr("ctreq","Controller '{0}', required by directive '{1}', can't be found!",e,t);return i||null}return dr(e)&&(i=[],o(e,function(e){i.push(m(t,e,n,r))})),i}function w(t,e,i,u,c){function l(t,e,r){var i;return k(t)||(r=e,e=t,t=n),W&&(i=w),r||(r=W?x.parent():x),c(t,e,i,r,T)}var d,p,g,y,b,w,_,x,E;if(a===i?(E=s,x=s.$$element):(x=nr(i),E=new at(x,s)),D&&(b=e.$new(!0)),c&&(_=l,_.$$boundTransclude=c),M&&(C={},w={},o(M,function(t){var n,r={$scope:t===D||t.$$isolateScope?b:e,$element:x,$attrs:E,$transclude:_};y=t.controller,"@"==y&&(y=E[t.name]),n=$(y,r,!0,t.controllerAs),w[t.name]=n,W||x.data("$"+t.name+"Controller",n.instance),C[t.name]=n})),D){I.$$addScopeInfo(x,b,!0,!(j&&(j===D||j===D.$$originalDirective))),I.$$addScopeClass(x,!0);var A=C&&C[D.name],S=b;A&&A.identifier&&D.bindToController===!0&&(S=A.instance),o(b.$$isolateBindings=D.$$isolateBindings,function(t,n){var i,o,a,s,u=t.attrName,c=t.optional,l=t.mode;switch(l){case"@":E.$observe(u,function(t){S[n]=t}),E.$$observers[u].$$scope=e,E[u]&&(S[n]=r(E[u])(e));break;case"=":if(c&&!E[u])return;o=v(E[u]),s=o.literal?R:function(t,e){return t===e||t!==t&&e!==e},a=o.assign||function(){throw i=S[n]=o(e),Kr("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",E[u],D.name)},i=S[n]=o(e);var f=function(t){return s(t,S[n])||(s(t,i)?a(e,t=S[n]):S[n]=t),i=t};f.$stateful=!0;var h;h=t.collection?e.$watchCollection(E[u],f):e.$watch(v(E[u],f),null,o.literal),b.$on("$destroy",h);break;case"&":o=v(E[u]),S[n]=function(t){return o(e,t)}}})}for(C&&(o(C,function(t){t()}),C=null),d=0,p=f.length;p>d;d++)g=f[d],ot(g,g.isolateScope?b:e,x,E,g.require&&m(g.directiveName,g.require,x,w),_);var T=e;for(D&&(D.template||null===D.templateUrl)&&(T=b),t&&t(T,i.childNodes,n,c),d=h.length-1;d>=0;d--)g=h[d],ot(g,g.isolateScope?b:e,x,E,g.require&&m(g.directiveName,g.require,x,w),_)}d=d||{};for(var _,C,E,A,S,T,O,z=-Number.MAX_VALUE,M=d.controllerDirectives,D=d.newIsolateScopeDirective,j=d.templateDirective,N=d.nonTlbTranscludeDirective,U=!1,q=!1,W=d.hasElementTranscludeDirective,Z=s.$$element=nr(a),K=l,Q=u,tt=0,nt=t.length;nt>tt;tt++){E=t[tt];var it=E.$$start,st=E.$$end;if(it&&(Z=F(a,it,st)),S=n,z>E.priority)break;if((O=E.scope)&&(E.templateUrl||(y(O)?(G("new/isolated scope",D||_,E,Z),D=E):G("new/isolated scope",D,E,Z)),_=_||E),A=E.name,!E.templateUrl&&E.controller&&(O=E.controller,M=M||{},G("'"+A+"' controller",M[A],E,Z),M[A]=E),(O=E.transclude)&&(U=!0,E.$$tlb||(G("transclusion",N,E,Z),N=E),"element"==O?(W=!0,z=E.priority,S=Z,Z=s.$$element=nr(e.createComment(" "+A+": "+s[A]+" ")),a=Z[0],et(c,B(S),a),Q=I(S,u,z,K&&K.name,{nonTlbTranscludeDirective:N})):(S=nr(wt(a)).contents(),Z.empty(),Q=I(S,u))),E.template)if(q=!0,G("template",j,E,Z),j=E,O=x(E.template)?E.template(Z,s):E.template,O=lt(O),E.replace){if(K=E,S=vt(O)?[]:te(J(E.templateNamespace,pr(O))),a=S[0],1!=S.length||a.nodeType!==br)throw Kr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",A,"");et(c,Z,a);var ut={$attr:{}},ct=P(a,[],ut),ft=t.splice(tt+1,t.length-(tt+1));D&&V(ct),t=t.concat(ct).concat(ft),X(s,ut),nt=t.length}else Z.html(O);if(E.templateUrl)q=!0,G("template",j,E,Z),j=E,E.replace&&(K=E),w=Y(t.splice(tt,t.length-tt),Z,s,c,U&&Q,f,h,{controllerDirectives:M,newIsolateScopeDirective:D,templateDirective:j,nonTlbTranscludeDirective:N}),nt=t.length;else if(E.compile)try{T=E.compile(Z,s,Q),x(T)?p(null,T,it,st):T&&p(T.pre,T.post,it,st)}catch(ht){i(ht,H(Z))}E.terminal&&(w.terminal=!0,z=Math.max(z,E.priority))}return w.scope=_&&_.scope===!0,w.transcludeOnThisElement=U,w.elementTranscludeOnThisElement=W,w.templateOnThisElement=q,w.transclude=Q,d.hasElementTranscludeDirective=W,w}function V(t){for(var e=0,n=t.length;n>e;e++)t[e]=d(t[e],{$$isolateScope:!0})}function q(e,r,o,u,c,l,f){if(r===c)return null;var h=null;if(a.hasOwnProperty(r))for(var p,m=t.get(r+s),v=0,g=m.length;g>v;v++)try{p=m[v],(u===n||u>p.priority)&&-1!=p.restrict.indexOf(o)&&(l&&(p=d(p,{ +$$start:l,$$end:f})),e.push(p),h=p)}catch($){i($)}return h}function W(e){if(a.hasOwnProperty(e))for(var n,r=t.get(e+s),i=0,o=r.length;o>i;i++)if(n=r[i],n.multiElement)return!0;return!1}function X(t,e){var n=e.$attr,r=t.$attr,i=t.$$element;o(t,function(r,i){"$"!=i.charAt(0)&&(e[i]&&e[i]!==r&&(r+=("style"===i?";":" ")+e[i]),t.$set(i,r,!0,n[i]))}),o(e,function(e,o){"class"==o?(O(i,e),t["class"]=(t["class"]?t["class"]+" ":"")+e):"style"==o?(i.attr("style",i.attr("style")+";"+e),t.style=(t.style?t.style+";":"")+e):"$"==o.charAt(0)||t.hasOwnProperty(o)||(t[o]=e,r[o]=n[o])})}function Y(t,e,n,r,i,a,s,c){var l,f,h=[],p=e[0],m=t.shift(),v=d(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),g=x(m.templateUrl)?m.templateUrl(e,n):m.templateUrl,$=m.templateNamespace;return e.empty(),u(g).then(function(u){var d,b,w,_;if(u=lt(u),m.replace){if(w=vt(u)?[]:te(J($,pr(u))),d=w[0],1!=w.length||d.nodeType!==br)throw Kr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,g);b={$attr:{}},et(r,e,d);var x=P(d,[],b);y(m.scope)&&V(x),t=x.concat(t),X(n,b)}else d=p,e.html(u);for(t.unshift(v),l=U(t,d,n,i,e,m,a,s,c),o(r,function(t,n){t==d&&(r[n]=e[0])}),f=M(e[0].childNodes,i);h.length;){var C=h.shift(),E=h.shift(),k=h.shift(),A=h.shift(),S=e[0];if(!C.$$destroyed){if(E!==p){var T=E.className;c.hasElementTranscludeDirective&&m.replace||(S=wt(d)),et(k,nr(E),S),O(nr(S),T)}_=l.transcludeOnThisElement?N(C,l.transclude,A):A,l(f,C,S,r,_)}}h=null}),function(t,e,n,r,i){var o=i;e.$$destroyed||(h?h.push(e,n,r,o):(l.transcludeOnThisElement&&(o=N(e,l.transclude,i)),l(f,e,n,r,o)))}}function Z(t,e){var n=e.priority-t.priority;return 0!==n?n:t.name!==e.name?t.name"+n+"",r.childNodes[0].childNodes;default:return n}}function Q(t,e){if("srcdoc"==e)return A.HTML;var n=D(t);return"xlinkHref"==e||"form"==n&&"action"==e||"img"!=n&&("src"==e||"ngSrc"==e)?A.RESOURCE_URL:void 0}function tt(t,e,n,i,o){var a=Q(t,i);o=h[i]||o;var s=r(n,!0,a,o);if(s){if("multiple"===i&&"select"===D(t))throw Kr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",H(t));e.push({priority:100,compile:function(){return{pre:function(t,e,u){var c=u.$$observers||(u.$$observers={});if(w.test(i))throw Kr("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var l=u[i];l!==n&&(s=l&&r(l,!0,a,o),n=l),s&&(u[i]=s(t),(c[i]||(c[i]=[])).$$inter=!0,(u.$$observers&&u.$$observers[i].$$scope||t).$watch(s,function(t,e){"class"===i&&t!=e?u.$updateClass(t,e):u.$set(i,t)}))}}}})}}function et(t,n,r){var i,o,a=n[0],s=n.length,u=a.parentNode;if(t)for(i=0,o=t.length;o>i;i++)if(t[i]==a){t[i++]=r;for(var c=i,l=c+s-1,f=t.length;f>c;c++,l++)f>l?t[c]=t[l]:delete t[c];t.length-=s-1,t.context===a&&(t.context=r);break}u&&u.replaceChild(r,a);var h=e.createDocumentFragment();h.appendChild(a),nr(r).data(nr(a).data()),rr?(hr=!0,rr.cleanData([a])):delete nr.cache[a[nr.expando]];for(var d=1,p=n.length;p>d;d++){var m=n[d];nr(m).remove(),h.appendChild(m),delete n[d]}n[0]=r,n.length=1}function rt(t,e){return f(function(){return t.apply(null,arguments)},t,e)}function ot(t,e,n,r,o,a){try{t(e,n,r,o,a)}catch(s){i(s,H(n))}}var at=function(t,e){if(e){var n,r,i,o=Object.keys(e);for(n=0,r=o.length;r>n;n++)i=o[n],this[i]=e[i]}else this.$attr={};this.$$element=t};at.prototype={$normalize:Jt,$addClass:function(t){t&&t.length>0&&S.addClass(this.$$element,t)},$removeClass:function(t){t&&t.length>0&&S.removeClass(this.$$element,t)},$updateClass:function(t,e){var n=Qt(t,e);n&&n.length&&S.addClass(this.$$element,n);var r=Qt(e,t);r&&r.length&&S.removeClass(this.$$element,r)},$set:function(t,e,r,a){var s,u=this.$$element[0],c=Nt(u,t),l=Pt(u,t),f=t;if(c?(this.$$element.prop(t,e),a=c):l&&(this[l]=e,f=l),this[t]=e,a?this.$attr[t]=a:(a=this.$attr[t],a||(this.$attr[t]=a=nt(t,"-"))),s=D(this.$$element),"a"===s&&"href"===t||"img"===s&&"src"===t)this[t]=e=T(e,"src"===t);else if("img"===s&&"srcset"===t){for(var h="",d=pr(e),p=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,m=/\s/.test(d)?p:/(,)/,v=d.split(m),g=Math.floor(v.length/2),$=0;g>$;$++){var y=2*$;h+=T(pr(v[y]),!0),h+=" "+pr(v[y+1])}var b=pr(v[2*$]).split(/\s/);h+=T(pr(b[0]),!0),2===b.length&&(h+=" "+pr(b[1])),this[t]=e=h}r!==!1&&(null===e||e===n?this.$$element.removeAttr(a):this.$$element.attr(a,e));var w=this.$$observers;w&&o(w[f],function(t){try{t(e)}catch(n){i(n)}})},$observe:function(t,e){var n=this,r=n.$$observers||(n.$$observers=ct()),i=r[t]||(r[t]=[]);return i.push(e),C.$evalAsync(function(){!i.$$inter&&n.hasOwnProperty(t)&&e(n[t])}),function(){j(i,e)}}};var st=r.startSymbol(),ut=r.endSymbol(),lt="{{"==st||"}}"==ut?m:function(t){return t.replace(/\{\{/g,st).replace(/}}/g,ut)},ft=/^ngAttr[A-Z]/;return I.$$addBindingInfo=_?function(t,e){var n=t.data("$binding")||[];dr(e)?n=n.concat(e):n.push(e),t.data("$binding",n)}:p,I.$$addBindingClass=_?function(t){O(t,"ng-binding")}:p,I.$$addScopeInfo=_?function(t,e,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";t.data(i,e)}:p,I.$$addScopeClass=_?function(t,e){O(t,e?"ng-isolate-scope":"ng-scope")}:p,I}]}function Jt(t){return mt(t.replace(Jr,""))}function Qt(t,e){var n="",r=t.split(/\s+/),i=e.split(/\s+/);t:for(var o=0;o0?" ":"")+a}return n}function te(t){t=nr(t);var e=t.length;if(1>=e)return t;for(;e--;){var n=t[e];n.nodeType===xr&&ar.call(t,e,1)}return t}function ee(){var t={},e=!1,i=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(e,n){at(e,"controller"),y(e)?f(t,e):t[e]=n},this.allowGlobals=function(){e=!0},this.$get=["$injector","$window",function(o,a){function s(t,e,n,i){if(!t||!y(t.$scope))throw r("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,e);t.$scope[e]=n}return function(r,u,c,l){var h,d,p,m;if(c=c===!0,l&&b(l)&&(m=l),b(r)){if(d=r.match(i),!d)throw Qr("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);p=d[1],m=m||d[3],r=t.hasOwnProperty(p)?t[p]:st(u.$scope,p,!0)||(e?st(a,p,!0):n),ot(r,p,!0)}if(c){var v=(dr(r)?r[r.length-1]:r).prototype;return h=Object.create(v||null),m&&s(u,m,h,p||r.name),f(function(){return o.invoke(r,h,u,p),h},{instance:h,identifier:m})}return h=o.instantiate(r,u,p),m&&s(u,m,h,p||r.name),h}}]}function ne(){this.$get=["$window",function(t){return nr(t.document)}]}function re(){this.$get=["$log",function(t){return function(e,n){t.error.apply(t,arguments)}}]}function ie(t,e){if(b(t)){var n=t.replace(ii,"").trim();if(n){var r=e("Content-Type");(r&&0===r.indexOf(ti)||oe(n))&&(t=q(n))}}return t}function oe(t){var e=t.match(ni);return e&&ri[e[0]].test(t)}function ae(t){var e,n,r,i=ct();return t?(o(t.split("\n"),function(t){r=t.indexOf(":"),e=Gn(pr(t.substr(0,r))),n=pr(t.substr(r+1)),e&&(i[e]=i[e]?i[e]+", "+n:n)}),i):i}function se(t){var e=y(t)?t:n;return function(n){if(e||(e=ae(t)),n){var r=e[Gn(n)];return void 0===r&&(r=null),r}return e}}function ue(t,e,n,r){return x(r)?r(t,e,n):(o(r,function(r){t=r(t,e,n)}),t)}function ce(t){return t>=200&&300>t}function le(){var t=this.defaults={transformResponse:[ie],transformRequest:[function(t){return!y(t)||A(t)||T(t)||S(t)?t:V(t)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:P(ei),put:P(ei),patch:P(ei)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},e=!1;this.useApplyAsync=function(t){return $(t)?(e=!!t,this):e};var i=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,u,c,l,h,d){function p(e){function i(t){var e=f({},t);return t.data?e.data=ue(t.data,t.headers,t.status,u.transformResponse):e.data=t.data,ce(t.status)?e:h.reject(e)}function a(t){var e,n={};return o(t,function(t,r){x(t)?(e=t(),null!=e&&(n[r]=e)):n[r]=t}),n}function s(e){var n,r,i,o=t.headers,s=f({},e.headers);o=f({},o.common,o[Gn(e.method)]);t:for(n in o){r=Gn(n);for(i in s)if(Gn(i)===r)continue t;s[n]=o[n]}return a(s)}if(!lr.isObject(e))throw r("$http")("badreq","Http request configuration must be an object. Received: {0}",e);var u=f({method:"get",transformRequest:t.transformRequest,transformResponse:t.transformResponse},e);u.headers=s(e),u.method=Jn(u.method);var c=function(e){var r=e.headers,a=ue(e.data,se(r),n,e.transformRequest);return g(a)&&o(r,function(t,e){"content-type"===Gn(e)&&delete r[e]}),g(e.withCredentials)&&!g(t.withCredentials)&&(e.withCredentials=t.withCredentials),w(e,a).then(i,i)},l=[c,n],d=h.when(u);for(o(k,function(t){(t.request||t.requestError)&&l.unshift(t.request,t.requestError),(t.response||t.responseError)&&l.push(t.response,t.responseError)});l.length;){var p=l.shift(),m=l.shift();d=d.then(p,m)}return d.success=function(t){return ot(t,"fn"),d.then(function(e){t(e.data,e.status,e.headers,u)}),d},d.error=function(t){return ot(t,"fn"),d.then(null,function(e){t(e.data,e.status,e.headers,u)}),d},d}function m(t){o(arguments,function(t){p[t]=function(e,n){return p(f(n||{},{method:t,url:e}))}})}function v(t){o(arguments,function(t){p[t]=function(e,n,r){return p(f(r||{},{method:t,url:e,data:n}))}})}function w(r,i){function o(t,n,r,i){function o(){s(n,t,r,i)}d&&(ce(t)?d.put(_,[t,n,ae(r),i]):d.remove(_)),e?l.$applyAsync(o):(o(),l.$$phase||l.$apply())}function s(t,e,n,i){e=e>=-1?e:0,(ce(e)?v.resolve:v.reject)({data:t,status:e,headers:se(n),config:r,statusText:i})}function c(t){s(t.data,t.status,P(t.headers()),t.statusText)}function f(){var t=p.pendingRequests.indexOf(r);-1!==t&&p.pendingRequests.splice(t,1)}var d,m,v=h.defer(),b=v.promise,w=r.headers,_=C(r.url,r.params);if(p.pendingRequests.push(r),b.then(f,f),!r.cache&&!t.cache||r.cache===!1||"GET"!==r.method&&"JSONP"!==r.method||(d=y(r.cache)?r.cache:y(t.cache)?t.cache:E),d&&(m=d.get(_),$(m)?I(m)?m.then(c,c):dr(m)?s(m[1],m[0],P(m[2]),m[3]):s(m,200,{},"OK"):d.put(_,b)),g(m)){var x=an(r.url)?u.cookies()[r.xsrfCookieName||t.xsrfCookieName]:n;x&&(w[r.xsrfHeaderName||t.xsrfHeaderName]=x),a(r.method,_,i,o,w,r.timeout,r.withCredentials,r.responseType)}return b}function C(t,e){if(!e)return t;var n=[];return s(e,function(t,e){null===t||g(t)||(dr(t)||(t=[t]),o(t,function(t){y(t)&&(t=_(t)?t.toISOString():V(t)),n.push(G(e)+"="+G(t))}))}),n.length>0&&(t+=(-1==t.indexOf("?")?"?":"&")+n.join("&")),t}var E=c("$http"),k=[];return o(i,function(t){k.unshift(b(t)?d.get(t):d.invoke(t))}),p.pendingRequests=[],m("get","delete","head","jsonp"),v("post","put","patch"),p.defaults=t,p}]}function fe(){return new t.XMLHttpRequest}function he(){this.$get=["$browser","$window","$document",function(t,e,n){return de(t,fe,t.defer,e.angular.callbacks,n[0])}]}function de(t,e,r,i,a){function s(t,e,n){var r=a.createElement("script"),o=null;return r.type="text/javascript",r.src=t,r.async=!0,o=function(t){Or(r,"load",o),Or(r,"error",o),a.body.removeChild(r),r=null;var s=-1,u="unknown";t&&("load"!==t.type||i[e].called||(t={type:"error"}),u=t.type,s="error"===t.type?404:200),n&&n(s,u)},Tr(r,"load",o),Tr(r,"error",o),a.body.appendChild(r),o}return function(a,u,c,l,f,h,d,m){function v(){b&&b(),w&&w.abort()}function g(e,i,o,a,s){C!==n&&r.cancel(C),b=w=null,e(i,o,a,s),t.$$completeOutstandingRequest(p)}if(t.$$incOutstandingRequestCount(),u=u||t.url(),"jsonp"==Gn(a)){var y="_"+(i.counter++).toString(36);i[y]=function(t){i[y].data=t,i[y].called=!0};var b=s(u.replace("JSON_CALLBACK","angular.callbacks."+y),y,function(t,e){g(l,t,i[y].data,"",e),i[y]=p})}else{var w=e();w.open(a,u,!0),o(f,function(t,e){$(t)&&w.setRequestHeader(e,t)}),w.onload=function(){var t=w.statusText||"",e="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=e?200:"file"==on(u).protocol?404:0),g(l,n,e,w.getAllResponseHeaders(),t)};var _=function(){g(l,-1,null,null,"")};if(w.onerror=_,w.onabort=_,d&&(w.withCredentials=!0),m)try{w.responseType=m}catch(x){if("json"!==m)throw x}w.send(c||null)}if(h>0)var C=r(v,h);else I(h)&&h.then(v)}}function pe(){var t="{{",e="}}";this.startSymbol=function(e){return e?(t=e,this):t},this.endSymbol=function(t){return t?(e=t,this):e},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function o(t){return"\\\\\\"+t}function a(o,a,h,d){function p(n){return n.replace(c,t).replace(l,e)}function m(t){try{return t=T(t),d&&!$(t)?t:O(t)}catch(e){var n=oi("interr","Can't interpolate: {0}\n{1}",o,e.toString());r(n)}}d=!!d;for(var v,y,b,w=0,_=[],C=[],E=o.length,k=[],A=[];E>w;){if(-1==(v=o.indexOf(t,w))||-1==(y=o.indexOf(e,v+s))){w!==E&&k.push(p(o.substring(w)));break}w!==v&&k.push(p(o.substring(w,v))),b=o.substring(v+s,y),_.push(b),C.push(n(b,m)),w=y+u,A.push(k.length),k.push("")}if(h&&k.length>1)throw oi("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",o);if(!a||_.length){var S=function(t){for(var e=0,n=_.length;n>e;e++){if(d&&g(t[e]))return;k[A[e]]=t[e]}return k.join("")},T=function(t){return h?i.getTrusted(h,t):i.valueOf(t)},O=function(t){if(null==t)return"";switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=V(t)}return t};return f(function(t){var e=0,n=_.length,i=new Array(n);try{for(;n>e;e++)i[e]=C[e](t);return S(i)}catch(a){var s=oi("interr","Can't interpolate: {0}\n{1}",o,a.toString());r(s)}},{exp:o,expressions:_,$$watchDelegate:function(t,e,n){var r;return t.$watchGroup(C,function(n,i){var o=S(n);x(e)&&e.call(this,o,n!==i?r:o,t),r=o},n)}})}}var s=t.length,u=e.length,c=new RegExp(t.replace(/./g,o),"g"),l=new RegExp(e.replace(/./g,o),"g");return a.startSymbol=function(){return t},a.endSymbol=function(){return e},a}]}function me(){this.$get=["$rootScope","$window","$q","$$q",function(t,e,n,r){function i(i,a,s,u){var c=e.setInterval,l=e.clearInterval,f=0,h=$(u)&&!u,d=(h?r:n).defer(),p=d.promise;return s=$(s)?s:0,p.then(null,null,i),p.$$intervalId=c(function(){d.notify(f++),s>0&&f>=s&&(d.resolve(f),l(p.$$intervalId),delete o[p.$$intervalId]),h||t.$apply()},a),o[p.$$intervalId]=d,p}var o={};return i.cancel=function(t){return t&&t.$$intervalId in o?(o[t.$$intervalId].reject("canceled"),e.clearInterval(t.$$intervalId),delete o[t.$$intervalId],!0):!1},i}]}function ve(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(t){return 1===t?"one":"other"}}}}function ge(t){for(var e=t.split("/"),n=e.length;n--;)e[n]=Z(e[n]);return e.join("/")}function $e(t,e){var n=on(t);e.$$protocol=n.protocol,e.$$host=n.hostname,e.$$port=h(n.port)||si[n.protocol]||null}function ye(t,e){var n="/"!==t.charAt(0);n&&(t="/"+t);var r=on(t);e.$$path=decodeURIComponent(n&&"/"===r.pathname.charAt(0)?r.pathname.substring(1):r.pathname),e.$$search=X(r.search),e.$$hash=decodeURIComponent(r.hash),e.$$path&&"/"!=e.$$path.charAt(0)&&(e.$$path="/"+e.$$path)}function be(t,e){return 0===e.indexOf(t)?e.substr(t.length):void 0}function we(t){var e=t.indexOf("#");return-1==e?t:t.substr(0,e)}function _e(t){return t.replace(/(#.+)|#$/,"$1")}function xe(t){return t.substr(0,we(t).lastIndexOf("/")+1)}function Ce(t){return t.substring(0,t.indexOf("/",t.indexOf("//")+2))}function Ee(t,e,r){this.$$html5=!0,r=r||"",$e(t,this),this.$$parse=function(t){var n=be(e,t);if(!b(n))throw ui("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,e);ye(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var t=Y(this.$$search),n=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(t?"?"+t:"")+n,this.$$absUrl=e+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,o){if(o&&"#"===o[0])return this.hash(o.slice(1)),!0;var a,s,u;return(a=be(t,i))!==n?(s=a,u=(a=be(r,a))!==n?e+(be("/",a)||a):t+s):(a=be(e,i))!==n?u=e+a:e==i+"/"&&(u=e),u&&this.$$parse(u),!!u}}function ke(t,e,n){$e(t,this),this.$$parse=function(r){function i(t,e,n){var r,i=/^\/[A-Z]:(\/.*)/;return 0===e.indexOf(n)&&(e=e.replace(n,"")),i.exec(e)?t:(r=i.exec(t),r?r[1]:t)}var o,a=be(t,r)||be(e,r);g(a)||"#"!==a.charAt(0)?this.$$html5?o=a:(o="",g(a)&&(t=r,this.replace())):(o=be(n,a),g(o)&&(o=a)),ye(o,this),this.$$path=i(this.$$path,o,t),this.$$compose()},this.$$compose=function(){var e=Y(this.$$search),r=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(e?"?"+e:"")+r,this.$$absUrl=t+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(e,n){return we(t)==we(e)?(this.$$parse(e),!0):!1}}function Ae(t,e,n){this.$$html5=!0,ke.apply(this,arguments),this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a;return t==we(r)?o=r:(a=be(e,r))?o=t+n+a:e===r+"/"&&(o=e),o&&this.$$parse(o),!!o},this.$$compose=function(){var e=Y(this.$$search),r=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(e?"?"+e:"")+r,this.$$absUrl=t+n+this.$$url}}function Se(t){return function(){return this[t]}}function Te(t,e){return function(n){return g(n)?this[t]:(this[t]=e(n),this.$$compose(),this)}}function Oe(){var t="",e={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return $(e)?(t=e,this):t},this.html5Mode=function(t){return O(t)?(e.enabled=t,this):y(t)?(O(t.enabled)&&(e.enabled=t.enabled),O(t.requireBase)&&(e.requireBase=t.requireBase),O(t.rewriteLinks)&&(e.rewriteLinks=t.rewriteLinks),this):e},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,a){function s(t,e,n){var i=c.url(),o=c.$$state;try{r.url(t,e,n),c.$$state=r.state()}catch(a){throw c.url(i),c.$$state=o,a}}function u(t,e){n.$broadcast("$locationChangeSuccess",c.absUrl(),t,c.$$state,e)}var c,l,f,h=r.baseHref(),d=r.url();if(e.enabled){if(!h&&e.requireBase)throw ui("nobase","$location in HTML5 mode requires a tag to be present!");f=Ce(d)+(h||"/"),l=i.history?Ee:Ae}else f=we(d),l=ke;var p=xe(f);c=new l(f,p,"#"+t),c.$$parseLinkUrl(d,d),c.$$state=r.state();var m=/^\s*(javascript|mailto):/i;o.on("click",function(t){if(e.rewriteLinks&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey&&2!=t.which&&2!=t.button){for(var i=nr(t.target);"a"!==D(i[0]);)if(i[0]===o[0]||!(i=i.parent())[0])return;var s=i.prop("href"),u=i.attr("href")||i.attr("xlink:href");y(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=on(s.animVal).href),m.test(s)||!s||i.attr("target")||t.isDefaultPrevented()||c.$$parseLinkUrl(s,u)&&(t.preventDefault(),c.absUrl()!=r.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}),_e(c.absUrl())!=_e(d)&&r.url(c.absUrl(),!0);var v=!0;return r.onUrlChange(function(t,e){return g(be(p,t))?void(a.location.href=t):(n.$evalAsync(function(){var r,i=c.absUrl(),o=c.$$state;c.$$parse(t),c.$$state=e,r=n.$broadcast("$locationChangeStart",t,i,e,o).defaultPrevented,c.absUrl()===t&&(r?(c.$$parse(i),c.$$state=o,s(i,!1,o)):(v=!1,u(i,o)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var t=_e(r.url()),e=_e(c.absUrl()),o=r.state(),a=c.$$replace,l=t!==e||c.$$html5&&i.history&&o!==c.$$state;(v||l)&&(v=!1,n.$evalAsync(function(){var e=c.absUrl(),r=n.$broadcast("$locationChangeStart",e,t,c.$$state,o).defaultPrevented;c.absUrl()===e&&(r?(c.$$parse(t),c.$$state=o):(l&&s(e,a,o===c.$$state?null:c.$$state),u(t,o)))})),c.$$replace=!1}),c}]}function Ie(){var t=!0,e=this;this.debugEnabled=function(e){return $(e)?(t=e,this):t},this.$get=["$window",function(n){function r(t){return t instanceof Error&&(t.stack?t=t.message&&-1===t.stack.indexOf(t.message)?"Error: "+t.message+"\n"+t.stack:t.stack:t.sourceURL&&(t=t.message+"\n"+t.sourceURL+":"+t.line)),t}function i(t){var e=n.console||{},i=e[t]||e.log||p,a=!1;try{a=!!i.apply}catch(s){}return a?function(){var t=[];return o(arguments,function(e){t.push(r(e))}),i.apply(e,t)}:function(t,e){i(t,null==e?"":e)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){t&&n.apply(e,arguments)}}()}}]}function ze(t,e){if("__defineGetter__"===t||"__defineSetter__"===t||"__lookupGetter__"===t||"__lookupSetter__"===t||"__proto__"===t)throw li("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",e);return t}function Me(t,e){if(t+="",!b(t))throw li("iseccst","Cannot convert object to primitive value! Expression: {0}",e);return t}function De(t,e){if(t){if(t.constructor===t)throw li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t.window===t)throw li("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",e);if(t.children&&(t.nodeName||t.prop&&t.attr&&t.find))throw li("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",e);if(t===Object)throw li("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",e)}return t}function je(t,e){if(t){if(t.constructor===t)throw li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t===fi||t===hi||t===di)throw li("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",e)}}function Ne(t){return t.constant}function Pe(t,e,n,r,i){De(t,i),De(e,i);for(var o,a=n.split("."),s=0;a.length>1;s++){o=ze(a.shift(),i);var u=0===s&&e&&e[o]||t[o];u||(u={},t[o]=u),t=De(u,i)}return o=ze(a.shift(),i),De(t[o],i),t[o]=r,r}function Re(t){return"constructor"==t}function Fe(t,e,r,i,o,a,s){ze(t,a),ze(e,a),ze(r,a),ze(i,a),ze(o,a);var u=function(t){return De(t,a)},c=s||Re(t)?u:m,l=s||Re(e)?u:m,f=s||Re(r)?u:m,h=s||Re(i)?u:m,d=s||Re(o)?u:m;return function(a,s){var u=s&&s.hasOwnProperty(t)?s:a;return null==u?u:(u=c(u[t]),e?null==u?n:(u=l(u[e]),r?null==u?n:(u=f(u[r]),i?null==u?n:(u=h(u[i]),o?null==u?n:u=d(u[o]):u):u):u):u)}}function Be(t,e){return function(n,r){return t(n,r,De,e)}}function Le(t,e,r){var i=e.expensiveChecks,a=i?bi:yi,s=a[t];if(s)return s;var u=t.split("."),c=u.length;if(e.csp)s=6>c?Fe(u[0],u[1],u[2],u[3],u[4],r,i):function(t,e){var o,a=0;do o=Fe(u[a++],u[a++],u[a++],u[a++],u[a++],r,i)(t,e),e=n,t=o;while(c>a);return o};else{var l="";i&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var f=i;o(u,function(t,e){ze(t,r);var n=(e?"s":'((l&&l.hasOwnProperty("'+t+'"))?l:s)')+"."+t;(i||Re(t))&&(n="eso("+n+", fe)",f=!0),l+="if(s == null) return undefined;\ns="+n+";\n"}),l+="return s;";var h=new Function("s","l","eso","fe",l);h.toString=v(l),f&&(h=Be(h,r)),s=h}return s.sharedGetter=!0,s.assign=function(e,n,r){return Pe(e,r,t,n,t)},a[t]=s,s}function Ue(t){return x(t.valueOf)?t.valueOf():wi.call(t)}function Ve(){var t=ct(),e=ct();this.$get=["$filter","$sniffer",function(n,r){function i(t){var e=t;return t.sharedGetter&&(e=function(e,n){return t(e,n)},e.literal=t.literal,e.constant=t.constant,e.assign=t.assign),e}function a(t,e){for(var n=0,r=t.length;r>n;n++){var i=t[n];i.constant||(i.inputs?a(i.inputs,e):-1===e.indexOf(i)&&e.push(i))}return e}function s(t,e){return null==t||null==e?t===e:"object"==typeof t&&(t=Ue(t),"object"==typeof t)?!1:t===e||t!==t&&e!==e}function u(t,e,n,r){var i,o=r.$$inputs||(r.$$inputs=a(r.inputs,[]));if(1===o.length){var u=s;return o=o[0],t.$watch(function(t){var e=o(t);return s(e,u)||(i=r(t),u=e&&Ue(e)),i},e,n)}for(var c=[],l=0,f=o.length;f>l;l++)c[l]=s;return t.$watch(function(t){for(var e=!1,n=0,a=o.length;a>n;n++){var u=o[n](t);(e||(e=!s(u,c[n])))&&(c[n]=u&&Ue(u))}return e&&(i=r(t)),i},e,n)}function c(t,e,n,r){var i,o;return i=t.$watch(function(t){return r(t)},function(t,n,r){o=t,x(e)&&e.apply(this,arguments),$(t)&&r.$$postDigest(function(){$(o)&&i()})},n)}function l(t,e,n,r){function i(t){var e=!0;return o(t,function(t){$(t)||(e=!1)}),e}var a,s;return a=t.$watch(function(t){return r(t)},function(t,n,r){s=t,x(e)&&e.call(this,t,n,r),i(t)&&r.$$postDigest(function(){i(s)&&a()})},n)}function f(t,e,n,r){var i;return i=t.$watch(function(t){return r(t)},function(t,n,r){x(e)&&e.apply(this,arguments),i()},n)}function h(t,e){if(!e)return t;var n=t.$$watchDelegate,r=n!==l&&n!==c,i=r?function(n,r){var i=t(n,r);return e(i,n,r)}:function(n,r){var i=t(n,r),o=e(i,n,r);return $(i)?o:i};return t.$$watchDelegate&&t.$$watchDelegate!==u?i.$$watchDelegate=t.$$watchDelegate:e.$stateful||(i.$$watchDelegate=u,i.inputs=[t]),i}var d={csp:r.csp,expensiveChecks:!1},m={csp:r.csp,expensiveChecks:!0};return function(r,o,a){var s,v,g;switch(typeof r){case"string":g=r=r.trim();var $=a?e:t;if(s=$[g],!s){":"===r.charAt(0)&&":"===r.charAt(1)&&(v=!0,r=r.substring(2));var y=a?m:d,b=new gi(y),w=new $i(b,n,y);s=w.parse(r),s.constant?s.$$watchDelegate=f:v?(s=i(s),s.$$watchDelegate=s.literal?l:c):s.inputs&&(s.$$watchDelegate=u),$[g]=s}return h(s,o);case"function":return h(r,o);default:return h(p,o)}}}]}function qe(){this.$get=["$rootScope","$exceptionHandler",function(t,e){return We(function(e){t.$evalAsync(e)},e)}]}function He(){this.$get=["$browser","$exceptionHandler",function(t,e){return We(function(e){t.defer(e)},e)}]}function We(t,e){function i(t,e,n){function r(e){return function(n){i||(i=!0,e.call(t,n))}}var i=!1;return[r(e),r(n)]}function a(){this.$$state={status:0}}function s(t,e){return function(n){e.call(t,n)}}function u(t){var r,i,o;o=t.pending,t.processScheduled=!1,t.pending=n;for(var a=0,s=o.length;s>a;++a){i=o[a][0],r=o[a][t.status];try{x(r)?i.resolve(r(t.value)):1===t.status?i.resolve(t.value):i.reject(t.value)}catch(u){i.reject(u),e(u)}}}function c(e){!e.processScheduled&&e.pending&&(e.processScheduled=!0,t(function(){u(e)}))}function l(){this.promise=new a,this.resolve=s(this,this.resolve),this.reject=s(this,this.reject),this.notify=s(this,this.notify)}function f(t){var e=new l,n=0,r=dr(t)?[]:{};return o(t,function(t,i){n++,g(t).then(function(t){r.hasOwnProperty(i)||(r[i]=t,--n||e.resolve(r))},function(t){r.hasOwnProperty(i)||e.reject(t)})}),0===n&&e.resolve(r),e.promise}var h=r("$q",TypeError),d=function(){return new l};a.prototype={then:function(t,e,n){var r=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,t,e,n]),this.$$state.status>0&&c(this.$$state),r.promise},"catch":function(t){return this.then(null,t)},"finally":function(t,e){return this.then(function(e){return v(e,!0,t)},function(e){return v(e,!1,t)},e)}},l.prototype={resolve:function(t){this.promise.$$state.status||(t===this.promise?this.$$reject(h("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):this.$$resolve(t))},$$resolve:function(t){var n,r;r=i(this,this.$$resolve,this.$$reject);try{(y(t)||x(t))&&(n=t&&t.then),x(n)?(this.promise.$$state.status=-1,n.call(t,r[0],r[1],this.notify)):(this.promise.$$state.value=t,this.promise.$$state.status=1,c(this.promise.$$state))}catch(o){r[1](o),e(o)}},reject:function(t){this.promise.$$state.status||this.$$reject(t)},$$reject:function(t){this.promise.$$state.value=t,this.promise.$$state.status=2,c(this.promise.$$state)},notify:function(n){var r=this.promise.$$state.pending;this.promise.$$state.status<=0&&r&&r.length&&t(function(){for(var t,i,o=0,a=r.length;a>o;o++){i=r[o][0],t=r[o][3];try{i.notify(x(t)?t(n):n)}catch(s){e(s)}}})}};var p=function(t){var e=new l;return e.reject(t),e.promise},m=function(t,e){var n=new l;return e?n.resolve(t):n.reject(t),n.promise},v=function(t,e,n){var r=null;try{x(n)&&(r=n())}catch(i){return m(i,!1)}return I(r)?r.then(function(){return m(t,e)},function(t){return m(t,!1)}):m(t,e)},g=function(t,e,n,r){var i=new l;return i.resolve(t),i.promise.then(e,n,r)},$=function b(t){function e(t){r.resolve(t)}function n(t){r.reject(t)}if(!x(t))throw h("norslvr","Expected resolverFn, got '{0}'",t);if(!(this instanceof b))return new b(t);var r=new l;return t(e,n),r.promise};return $.defer=d,$.reject=p,$.when=g,$.all=f,$}function Xe(){this.$get=["$window","$timeout",function(t,e){function n(){for(var t=0;t=0&&(l[e]=null,e=null,0===--c&&u&&(u(),u=null,l.length=0))}}var i=t.requestAnimationFrame||t.webkitRequestAnimationFrame,o=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.webkitCancelRequestAnimationFrame,a=!!i,s=a?function(t){var e=i(t);return function(){o(e)}}:function(t){var n=e(t,16.66,!1);return function(){e.cancel(n)}};r.supported=a;var u,c=0,l=[];return r}]}function Ye(){function t(t){function e(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$id=c(),this.$$ChildScope=null}return e.prototype=t,e}var e=10,n=r("$rootScope"),a=null,s=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(r,u,l,f){function h(t){t.currentScope.$$destroyed=!0}function d(){this.$id=c(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$isolateBindings=null}function m(t){if(C.$$phase)throw n("inprog","{0} already in progress",C.$$phase);C.$$phase=t}function v(){C.$$phase=null}function $(t,e,n){do t.$$listenerCount[n]-=e,0===t.$$listenerCount[n]&&delete t.$$listenerCount[n];while(t=t.$parent)}function b(){}function w(){for(;A.length;)try{A.shift()()}catch(t){u(t)}s=null}function _(){null===s&&(s=f.defer(function(){C.$apply(w)}))}d.prototype={constructor:d,$new:function(e,n){var r;return n=n||this,e?(r=new d,r.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=t(this)),r=new this.$$ChildScope),r.$parent=n,r.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=r,n.$$childTail=r):n.$$childHead=n.$$childTail=r,(e||n!=this)&&r.$on("$destroy",h),r},$watch:function(t,e,n){var r=l(t);if(r.$$watchDelegate)return r.$$watchDelegate(this,e,n,r);var i=this,o=i.$$watchers,s={fn:e,last:b,get:r,exp:t,eq:!!n};return a=null,x(e)||(s.fn=p),o||(o=i.$$watchers=[]),o.unshift(s),function(){j(o,s),a=null}},$watchGroup:function(t,e){function n(){u=!1,c?(c=!1,e(i,i,s)):e(i,r,s)}var r=new Array(t.length),i=new Array(t.length),a=[],s=this,u=!1,c=!0;if(!t.length){var l=!0;return s.$evalAsync(function(){l&&e(i,i,s)}),function(){l=!1}}return 1===t.length?this.$watch(t[0],function(t,n,o){i[0]=t,r[0]=n,e(i,t===n?i:r,o)}):(o(t,function(t,e){var o=s.$watch(t,function(t,o){i[e]=t,r[e]=o,u||(u=!0,s.$evalAsync(n))});a.push(o)}),function(){for(;a.length;)a.shift()()})},$watchCollection:function(t,e){function n(t){o=t;var e,n,r,s,u;if(!g(o)){if(y(o))if(i(o)){a!==d&&(a=d,v=a.length=0,f++),e=o.length,v!==e&&(f++,a.length=v=e);for(var c=0;e>c;c++)u=a[c],s=o[c],r=u!==u&&s!==s,r||u===s||(f++,a[c]=s)}else{a!==p&&(a=p={},v=0,f++),e=0;for(n in o)o.hasOwnProperty(n)&&(e++,s=o[n],u=a[n],n in a?(r=u!==u&&s!==s,r||u===s||(f++,a[n]=s)):(v++,a[n]=s,f++));if(v>e){f++;for(n in a)o.hasOwnProperty(n)||(v--,delete a[n])}}else a!==o&&(a=o,f++);return f; +}}function r(){if(m?(m=!1,e(o,o,u)):e(o,s,u),c)if(y(o))if(i(o)){s=new Array(o.length);for(var t=0;t1,f=0,h=l(t,n),d=[],p={},m=!0,v=0;return this.$watch(h,r)},$digest:function(){var t,r,i,o,c,l,h,d,p,g,$=e,y=this,_=[];m("$digest"),f.$$checkUrlChange(),this===C&&null!==s&&(f.defer.cancel(s),w()),a=null;do{for(l=!1,d=y;E.length;){try{g=E.shift(),g.scope.$eval(g.expression,g.locals)}catch(A){u(A)}a=null}t:do{if(o=d.$$watchers)for(c=o.length;c--;)try{if(t=o[c])if((r=t.get(d))===(i=t.last)||(t.eq?R(r,i):"number"==typeof r&&"number"==typeof i&&isNaN(r)&&isNaN(i))){if(t===a){l=!1;break t}}else l=!0,a=t,t.last=t.eq?N(r,null):r,t.fn(r,i===b?r:i,d),5>$&&(p=4-$,_[p]||(_[p]=[]),_[p].push({msg:x(t.exp)?"fn: "+(t.exp.name||t.exp.toString()):t.exp,newVal:r,oldVal:i}))}catch(A){u(A)}if(!(h=d.$$childHead||d!==y&&d.$$nextSibling))for(;d!==y&&!(h=d.$$nextSibling);)d=d.$parent}while(d=h);if((l||E.length)&&!$--)throw v(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,_)}while(l||E.length);for(v();k.length;)try{k.shift()()}catch(A){u(A)}},$destroy:function(){if(!this.$$destroyed){var t=this.$parent;if(this.$broadcast("$destroy"),this.$$destroyed=!0,this!==C){for(var e in this.$$listenerCount)$(this,this.$$listenerCount[e],e);t.$$childHead==this&&(t.$$childHead=this.$$nextSibling),t.$$childTail==this&&(t.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=p,this.$on=this.$watch=this.$watchGroup=function(){return p},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(t,e){return l(t)(this,e)},$evalAsync:function(t,e){C.$$phase||E.length||f.defer(function(){E.length&&C.$digest()}),E.push({scope:this,expression:t,locals:e})},$$postDigest:function(t){k.push(t)},$apply:function(t){try{return m("$apply"),this.$eval(t)}catch(e){u(e)}finally{v();try{C.$digest()}catch(e){throw u(e),e}}},$applyAsync:function(t){function e(){n.$eval(t)}var n=this;t&&A.push(e),_()},$on:function(t,e){var n=this.$$listeners[t];n||(this.$$listeners[t]=n=[]),n.push(e);var r=this;do r.$$listenerCount[t]||(r.$$listenerCount[t]=0),r.$$listenerCount[t]++;while(r=r.$parent);var i=this;return function(){var r=n.indexOf(e);-1!==r&&(n[r]=null,$(i,1,t))}},$emit:function(t,e){var n,r,i,o=[],a=this,s=!1,c={name:t,targetScope:a,stopPropagation:function(){s=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},l=F([c],arguments,1);do{for(n=a.$$listeners[t]||o,c.currentScope=a,r=0,i=n.length;i>r;r++)if(n[r])try{n[r].apply(null,l)}catch(f){u(f)}else n.splice(r,1),r--,i--;if(s)return c.currentScope=null,c;a=a.$parent}while(a);return c.currentScope=null,c},$broadcast:function(t,e){var n=this,r=n,i=n,o={name:t,targetScope:n,preventDefault:function(){o.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[t])return o;for(var a,s,c,l=F([o],arguments,1);r=i;){for(o.currentScope=r,a=r.$$listeners[t]||[],s=0,c=a.length;c>s;s++)if(a[s])try{a[s].apply(null,l)}catch(f){u(f)}else a.splice(s,1),s--,c--;if(!(i=r.$$listenerCount[t]&&r.$$childHead||r!==n&&r.$$nextSibling))for(;r!==n&&!(i=r.$$nextSibling);)r=r.$parent}return o.currentScope=null,o}};var C=new d,E=C.$$asyncQueue=[],k=C.$$postDigestQueue=[],A=C.$$applyAsyncQueue=[];return C}]}function Ze(){var t=/^\s*(https?|ftp|mailto|tel|file):/,e=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(e){return $(e)?(t=e,this):t},this.imgSrcSanitizationWhitelist=function(t){return $(t)?(e=t,this):e},this.$get=function(){return function(n,r){var i,o=r?e:t;return i=on(n).href,""===i||i.match(o)?n:"unsafe:"+i}}}function Ge(t){if("self"===t)return t;if(b(t)){if(t.indexOf("***")>-1)throw _i("iwcard","Illegal sequence *** in string matcher. String: {0}",t);return t=mr(t).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+t+"$")}if(C(t))return new RegExp("^"+t.source+"$");throw _i("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function Ke(t){var e=[];return $(t)&&o(t,function(t){e.push(Ge(t))}),e}function Je(){this.SCE_CONTEXTS=xi;var t=["self"],e=[];this.resourceUrlWhitelist=function(e){return arguments.length&&(t=Ke(e)),t},this.resourceUrlBlacklist=function(t){return arguments.length&&(e=Ke(t)),e},this.$get=["$injector",function(r){function i(t,e){return"self"===t?an(e):!!t.exec(e.href)}function o(n){var r,o,a=on(n.toString()),s=!1;for(r=0,o=t.length;o>r;r++)if(i(t[r],a)){s=!0;break}if(s)for(r=0,o=e.length;o>r;r++)if(i(e[r],a)){s=!1;break}return s}function a(t){var e=function(t){this.$$unwrapTrustedValue=function(){return t}};return t&&(e.prototype=new t),e.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},e.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},e}function s(t,e){var r=h.hasOwnProperty(t)?h[t]:null;if(!r)throw _i("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",t,e);if(null===e||e===n||""===e)return e;if("string"!=typeof e)throw _i("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",t);return new r(e)}function u(t){return t instanceof f?t.$$unwrapTrustedValue():t}function c(t,e){if(null===e||e===n||""===e)return e;var r=h.hasOwnProperty(t)?h[t]:null;if(r&&e instanceof r)return e.$$unwrapTrustedValue();if(t===xi.RESOURCE_URL){if(o(e))return e;throw _i("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",e.toString())}if(t===xi.HTML)return l(e);throw _i("unsafe","Attempting to use an unsafe value in a safe context.")}var l=function(t){throw _i("unsafe","Attempting to use an unsafe value in a safe context.")};r.has("$sanitize")&&(l=r.get("$sanitize"));var f=a(),h={};return h[xi.HTML]=a(f),h[xi.CSS]=a(f),h[xi.URL]=a(f),h[xi.JS]=a(f),h[xi.RESOURCE_URL]=a(h[xi.URL]),{trustAs:s,getTrusted:c,valueOf:u}}]}function Qe(){var t=!0;this.enabled=function(e){return arguments.length&&(t=!!e),t},this.$get=["$parse","$sceDelegate",function(e,n){if(t&&8>er)throw _i("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=P(xi);r.isEnabled=function(){return t},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,t||(r.trustAs=r.getTrusted=function(t,e){return e},r.valueOf=m),r.parseAs=function(t,n){var i=e(n);return i.literal&&i.constant?i:e(n,function(e){return r.getTrusted(t,e)})};var i=r.parseAs,a=r.getTrusted,s=r.trustAs;return o(xi,function(t,e){var n=Gn(e);r[mt("parse_as_"+n)]=function(e){return i(t,e)},r[mt("get_trusted_"+n)]=function(e){return a(t,e)},r[mt("trust_as_"+n)]=function(e){return s(t,e)}}),r}]}function tn(){this.$get=["$window","$document",function(t,e){var n,r,i={},o=h((/android (\d+)/.exec(Gn((t.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((t.navigator||{}).userAgent),s=e[0]||{},u=/^(Moz|webkit|ms)(?=[A-Z])/,c=s.body&&s.body.style,l=!1,f=!1;if(c){for(var d in c)if(r=u.exec(d)){n=r[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in c&&"webkit"),l=!!("transition"in c||n+"Transition"in c),f=!!("animation"in c||n+"Animation"in c),!o||l&&f||(l=b(s.body.style.webkitTransition),f=b(s.body.style.webkitAnimation))}return{history:!(!t.history||!t.history.pushState||4>o||a),hasEvent:function(t){if("input"===t&&11>=er)return!1;if(g(i[t])){var e=s.createElement("div");i[t]="on"+t in e}return i[t]},csp:vr(),vendorPrefix:n,transitions:l,animations:f,android:o}}]}function en(){this.$get=["$templateCache","$http","$q","$sce",function(t,e,n,r){function i(o,a){function s(t){if(!a)throw Kr("tpload","Failed to load template: {0}",o);return n.reject(t)}i.totalPendingRequests++,b(o)&&t.get(o)||(o=r.getTrustedResourceUrl(o));var u=e.defaults&&e.defaults.transformResponse;dr(u)?u=u.filter(function(t){return t!==ie}):u===ie&&(u=null);var c={cache:t,transformResponse:u};return e.get(o,c)["finally"](function(){i.totalPendingRequests--}).then(function(t){return t.data},s)}return i.totalPendingRequests=0,i}]}function nn(){this.$get=["$rootScope","$browser","$location",function(t,e,n){var r={};return r.findBindings=function(t,e,n){var r=t.getElementsByClassName("ng-binding"),i=[];return o(r,function(t){var r=lr.element(t).data("$binding");r&&o(r,function(r){if(n){var o=new RegExp("(^|\\s)"+mr(e)+"(\\s|\\||$)");o.test(r)&&i.push(t)}else-1!=r.indexOf(e)&&i.push(t)})}),i},r.findModels=function(t,e,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;it;t=Math.abs(t);var a=t+"",s="",u=[],c=!1;if(-1!==a.indexOf("e")){var l=a.match(/([\d\.]+)e(-?)(\d+)/);l&&"-"==l[2]&&l[3]>i+1?t=0:(s=a,c=!0)}if(c)i>0&&1>t&&(s=t.toFixed(i),t=parseFloat(s));else{var f=(a.split(ki)[1]||"").length;g(i)&&(i=Math.min(Math.max(e.minFrac,f),e.maxFrac)),t=+(Math.round(+(t.toString()+"e"+i)).toString()+"e"+-i);var h=(""+t).split(ki),d=h[0];h=h[1]||"";var p,m=0,v=e.lgSize,$=e.gSize;if(d.length>=v+$)for(m=d.length-v,p=0;m>p;p++)(m-p)%$===0&&0!==p&&(s+=n),s+=d.charAt(p);for(p=m;pt&&(r="-",t=-t),t=""+t;t.length0||o>-n)&&(o+=n),0===o&&-12==n&&(o=12),mn(o,e,r)}}function gn(t,e){return function(n,r){var i=n["get"+t](),o=Jn(e?"SHORT"+t:t);return r[o][i]}}function $n(t){var e=-1*t.getTimezoneOffset(),n=e>=0?"+":"";return n+=mn(Math[e>0?"floor":"ceil"](e/60),2)+mn(Math.abs(e%60),2)}function yn(t){var e=new Date(t,0,1).getDay();return new Date(t,0,(4>=e?5:12)-e)}function bn(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function wn(t){return function(e){var n=yn(e.getFullYear()),r=bn(e),i=+r-+n,o=1+Math.round(i/6048e5);return mn(o,t)}}function _n(t,e){return t.getHours()<12?e.AMPMS[0]:e.AMPMS[1]}function xn(t,e){return t.getFullYear()<=0?e.ERAS[0]:e.ERAS[1]}function Cn(t,e){return t.getFullYear()<=0?e.ERANAMES[0]:e.ERANAMES[1]}function En(t){function e(t){var e;if(e=t.match(n)){var r=new Date(0),i=0,o=0,a=e[8]?r.setUTCFullYear:r.setFullYear,s=e[8]?r.setUTCHours:r.setHours;e[9]&&(i=h(e[9]+e[10]),o=h(e[9]+e[11])),a.call(r,h(e[1]),h(e[2])-1,h(e[3]));var u=h(e[4]||0)-i,c=h(e[5]||0)-o,l=h(e[6]||0),f=Math.round(1e3*parseFloat("0."+(e[7]||0)));return s.call(r,u,c,l,f),r}return t}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var a,s,u="",c=[];if(r=r||"mediumDate",r=t.DATETIME_FORMATS[r]||r,b(n)&&(n=Ti.test(n)?h(n):e(n)),w(n)&&(n=new Date(n)),!_(n))return n;for(;r;)s=Si.exec(r),s?(c=F(c,s,1),r=c.pop()):(c.push(r),r=null);return i&&"UTC"===i&&(n=new Date(n.getTime()),n.setMinutes(n.getMinutes()+n.getTimezoneOffset())),o(c,function(e){a=Ai[e],u+=a?a(n,t.DATETIME_FORMATS):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}}function kn(){return function(t,e){return g(e)&&(e=2),V(t,e)}}function An(){return function(t,e){return w(t)&&(t=t.toString()),dr(t)||b(t)?(e=Math.abs(Number(e))===1/0?Number(e):h(e),e?e>0?t.slice(0,e):t.slice(e):b(t)?"":[]):t}}function Sn(t){return function(e,n,r){function o(t,e){for(var r=0;rt?-1:1):r>n?-1:1}return i(e)?(n=dr(n)?n:[n],0===n.length&&(n=["+"]),n=n.map(function(e){var n=!1,r=e||m;if(b(e)){if(("+"==e.charAt(0)||"-"==e.charAt(0))&&(n="-"==e.charAt(0),e=e.substring(1)),""===e)return a(c,n);if(r=t(e),r.constant){var i=r();return a(function(t,e){return c(t[i],e[i])},n)}}return a(function(t,e){return c(r(t),r(e))},n)}),or.call(e).sort(a(o,r))):e}}function Tn(t){return x(t)&&(t={link:t}),t.restrict=t.restrict||"AC",v(t)}function On(t,e){t.$name=e}function In(t,e,r,i,a){var s=this,u=[],c=s.$$parentForm=t.parent().controller("form")||Di;s.$error={},s.$$success={},s.$pending=n,s.$name=a(e.name||e.ngForm||"")(r),s.$dirty=!1,s.$pristine=!0,s.$valid=!0,s.$invalid=!1,s.$submitted=!1,c.$addControl(s),s.$rollbackViewValue=function(){o(u,function(t){t.$rollbackViewValue()})},s.$commitViewValue=function(){o(u,function(t){t.$commitViewValue()})},s.$addControl=function(t){at(t.$name,"input"),u.push(t),t.$name&&(s[t.$name]=t)},s.$$renameControl=function(t,e){var n=t.$name;s[n]===t&&delete s[n],s[e]=t,t.$name=e},s.$removeControl=function(t){t.$name&&s[t.$name]===t&&delete s[t.$name],o(s.$pending,function(e,n){s.$setValidity(n,null,t)}),o(s.$error,function(e,n){s.$setValidity(n,null,t)}),o(s.$$success,function(e,n){s.$setValidity(n,null,t)}),j(u,t)},Wn({ctrl:this,$element:t,set:function(t,e,n){var r=t[e];if(r){var i=r.indexOf(n);-1===i&&r.push(n)}else t[e]=[n]},unset:function(t,e,n){var r=t[e];r&&(j(r,n),0===r.length&&delete t[e])},parentForm:c,$animate:i}),s.$setDirty=function(){i.removeClass(t,go),i.addClass(t,$o),s.$dirty=!0,s.$pristine=!1,c.$setDirty()},s.$setPristine=function(){i.setClass(t,go,$o+" "+ji),s.$dirty=!1,s.$pristine=!0,s.$submitted=!1,o(u,function(t){t.$setPristine()})},s.$setUntouched=function(){o(u,function(t){t.$setUntouched()})},s.$setSubmitted=function(){i.addClass(t,ji),s.$submitted=!0,c.$setSubmitted()}}function zn(t){t.$formatters.push(function(e){return t.$isEmpty(e)?e:e.toString()})}function Mn(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r)}function Dn(t,e,n,r,i,o){var a=Gn(e[0].type);if(!i.android){var s=!1;e.on("compositionstart",function(t){s=!0}),e.on("compositionend",function(){s=!1,u()})}var u=function(t){if(c&&(o.defer.cancel(c),c=null),!s){var i=e.val(),u=t&&t.type;"password"===a||n.ngTrim&&"false"===n.ngTrim||(i=pr(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,u)}};if(i.hasEvent("input"))e.on("input",u);else{var c,l=function(t,e,n){c||(c=o.defer(function(){c=null,e&&e.value===n||u(t)}))};e.on("keydown",function(t){var e=t.keyCode;91===e||e>15&&19>e||e>=37&&40>=e||l(t,this,this.value)}),i.hasEvent("paste")&&e.on("paste cut",l)}e.on("change",u),r.$render=function(){e.val(r.$isEmpty(r.$viewValue)?"":r.$viewValue)}}function jn(t,e){if(_(t))return t;if(b(t)){Hi.lastIndex=0;var n=Hi.exec(t);if(n){var r=+n[1],i=+n[2],o=0,a=0,s=0,u=0,c=yn(r),l=7*(i-1);return e&&(o=e.getHours(),a=e.getMinutes(),s=e.getSeconds(),u=e.getMilliseconds()),new Date(r,0,c.getDate()+l,o,a,s,u)}}return NaN}function Nn(t,e){return function(n,r){var i,a;if(_(n))return n;if(b(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Fi.test(n))return new Date(n);if(t.lastIndex=0,i=t.exec(n))return i.shift(),a=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},o(i,function(t,n){n=v},s.$observe("min",function(t){v=d(t),u.$validate()})}if($(s.max)||s.ngMax){var y;u.$validators.max=function(t){return!h(t)||g(y)||r(t)<=y},s.$observe("max",function(t){y=d(t),u.$validate()})}}}function Rn(t,e,r,i){var o=e[0],a=i.$$hasNativeValidators=y(o.validity);a&&i.$parsers.push(function(t){var r=e.prop(Zn)||{};return r.badInput&&!r.typeMismatch?n:t})}function Fn(t,e,r,i,o,a){if(Rn(t,e,r,i),Dn(t,e,r,i,o,a),i.$$parserName="number",i.$parsers.push(function(t){return i.$isEmpty(t)?null:Ui.test(t)?parseFloat(t):n}),i.$formatters.push(function(t){if(!i.$isEmpty(t)){if(!w(t))throw _o("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}),$(r.min)||r.ngMin){var s;i.$validators.min=function(t){return i.$isEmpty(t)||g(s)||t>=s},r.$observe("min",function(t){$(t)&&!w(t)&&(t=parseFloat(t,10)),s=w(t)&&!isNaN(t)?t:n,i.$validate()})}if($(r.max)||r.ngMax){var u;i.$validators.max=function(t){return i.$isEmpty(t)||g(u)||u>=t},r.$observe("max",function(t){$(t)&&!w(t)&&(t=parseFloat(t,10)),u=w(t)&&!isNaN(t)?t:n,i.$validate()})}}function Bn(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r),r.$$parserName="url",r.$validators.url=function(t,e){var n=t||e;return r.$isEmpty(n)||Bi.test(n)}}function Ln(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r),r.$$parserName="email",r.$validators.email=function(t,e){var n=t||e;return r.$isEmpty(n)||Li.test(n)}}function Un(t,e,n,r){g(n.name)&&e.attr("name",c());var i=function(t){e[0].checked&&r.$setViewValue(n.value,t&&t.type)};e.on("click",i),r.$render=function(){var t=n.value;e[0].checked=t==r.$viewValue},n.$observe("value",r.$render)}function Vn(t,e,n,r,i){var o;if($(r)){if(o=t(r),!o.constant)throw _o("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(e)}return i}function qn(t,e,n,r,i,o,a,s){var u=Vn(s,t,"ngTrueValue",n.ngTrueValue,!0),c=Vn(s,t,"ngFalseValue",n.ngFalseValue,!1),l=function(t){r.$setViewValue(e[0].checked,t&&t.type)};e.on("click",l),r.$render=function(){e[0].checked=r.$viewValue},r.$isEmpty=function(t){return t===!1},r.$formatters.push(function(t){return R(t,u)}),r.$parsers.push(function(t){return t?u:c})}function Hn(t,e){return t="ngClass"+t,["$animate",function(n){function r(t,e){var n=[];t:for(var r=0;r0||n[t])&&(n[t]=(n[t]||0)+e,n[t]===+(e>0)&&r.push(t))}),s.data("$classCounts",n),r.join(" ")}function h(t,e){var i=r(e,t),o=r(t,e);i=f(i,1),o=f(o,-1),i&&i.length&&n.addClass(s,i),o&&o.length&&n.removeClass(s,o)}function d(t){if(e===!0||a.$index%2===e){var n=i(t||[]);if(p){if(!R(t,p)){var r=i(p);h(r,n)}}else c(n)}p=P(t)}var p;a.$watch(u[t],d,!0),u.$observe("class",function(e){d(a.$eval(u[t]))}),"ngClass"!==t&&a.$watch("$index",function(n,r){var o=1&n;if(o!==(1&r)){var s=i(a.$eval(u[t]));o===e?c(s):l(s)}})}}}]}function Wn(t){function e(t,e,u){e===n?r("$pending",t,u):i("$pending",t,u),O(e)?e?(f(s.$error,t,u),l(s.$$success,t,u)):(l(s.$error,t,u),f(s.$$success,t,u)):(f(s.$error,t,u),f(s.$$success,t,u)),s.$pending?(o(wo,!0),s.$valid=s.$invalid=n,a("",null)):(o(wo,!1),s.$valid=Xn(s.$error),s.$invalid=!s.$valid,a("",s.$valid));var c;c=s.$pending&&s.$pending[t]?n:s.$error[t]?!1:s.$$success[t]?!0:null,a(t,c),h.$setValidity(t,c,s)}function r(t,e,n){s[t]||(s[t]={}),l(s[t],e,n)}function i(t,e,r){s[t]&&f(s[t],e,r),Xn(s[t])&&(s[t]=n)}function o(t,e){e&&!c[t]?(d.addClass(u,t),c[t]=!0):!e&&c[t]&&(d.removeClass(u,t),c[t]=!1)}function a(t,e){t=t?"-"+nt(t,"-"):"",o(mo+t,e===!0),o(vo+t,e===!1)}var s=t.ctrl,u=t.$element,c={},l=t.set,f=t.unset,h=t.parentForm,d=t.$animate;c[vo]=!(c[mo]=u.hasClass(mo)),s.$setValidity=e}function Xn(t){if(t)for(var e in t)return!1;return!0}var Yn=/^\/(.+)\/([a-z]*)$/,Zn="validity",Gn=function(t){return b(t)?t.toLowerCase():t},Kn=Object.prototype.hasOwnProperty,Jn=function(t){return b(t)?t.toUpperCase():t},Qn=function(t){return b(t)?t.replace(/[A-Z]/g,function(t){return String.fromCharCode(32|t.charCodeAt(0))}):t},tr=function(t){return b(t)?t.replace(/[a-z]/g,function(t){return String.fromCharCode(-33&t.charCodeAt(0))}):t};"i"!=="I".toLowerCase()&&(Gn=Qn,Jn=tr);var er,nr,rr,ir,or=[].slice,ar=[].splice,sr=[].push,ur=Object.prototype.toString,cr=r("ng"),lr=t.angular||(t.angular={}),fr=0;er=e.documentMode,p.$inject=[],m.$inject=[];var hr,dr=Array.isArray,pr=function(t){return b(t)?t.trim():t},mr=function(t){return t.replace(/([-()\[\]{}+?*.$\^|,:#(?:<\/\1>|)$/,Nr=/<|&#?\w+;/,Pr=/<([\w:]+)/,Rr=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Fr={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Fr.optgroup=Fr.option,Fr.tbody=Fr.tfoot=Fr.colgroup=Fr.caption=Fr.thead,Fr.th=Fr.td;var Br=bt.prototype={ready:function(n){function r(){i||(i=!0,n())}var i=!1;"complete"===e.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),bt(t).on("load",r))},toString:function(){var t=[];return o(this,function(e){t.push(""+e)}),"["+t.join(", ")+"]"},eq:function(t){return nr(t>=0?this[t]:this[this.length+t])},length:0,push:sr,sort:[].sort,splice:[].splice},Lr={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(t){Lr[Gn(t)]=t});var Ur={};o("input,select,option,textarea,button,form,details".split(","),function(t){Ur[t]=!0});var Vr={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};o({data:kt,removeData:Ct},function(t,e){bt[e]=t}),o({data:kt,inheritedData:zt,scope:function(t){return nr.data(t,"$scope")||zt(t.parentNode||t,["$isolateScope","$scope"])},isolateScope:function(t){return nr.data(t,"$isolateScope")||nr.data(t,"$isolateScopeNoTemplate")},controller:It,injector:function(t){return zt(t,"$injector")},removeAttr:function(t,e){t.removeAttribute(e)},hasClass:At,css:function(t,e,n){return e=mt(e),$(n)?void(t.style[e]=n):t.style[e]},attr:function(t,e,r){var i=t.nodeType;if(i!==_r&&i!==wr&&i!==xr){var o=Gn(e);if(Lr[o]){if(!$(r))return t[e]||(t.attributes.getNamedItem(e)||p).specified?o:n;r?(t[e]=!0,t.setAttribute(e,o)):(t[e]=!1,t.removeAttribute(o))}else if($(r))t.setAttribute(e,r);else if(t.getAttribute){var a=t.getAttribute(e,2);return null===a?n:a}}},prop:function(t,e,n){return $(n)?void(t[e]=n):t[e]},text:function(){function t(t,e){if(g(e)){var n=t.nodeType;return n===br||n===_r?t.textContent:""}t.textContent=e}return t.$dv="",t}(),val:function(t,e){if(g(e)){if(t.multiple&&"select"===D(t)){var n=[];return o(t.options,function(t){t.selected&&n.push(t.value||t.text)}),0===n.length?null:n}return t.value}t.value=e},html:function(t,e){return g(e)?t.innerHTML:(_t(t,!0),void(t.innerHTML=e))},empty:Mt},function(t,e){bt.prototype[e]=function(e,r){var i,o,a=this.length;if(t!==Mt&&(2==t.length&&t!==At&&t!==It?e:r)===n){if(y(e)){for(i=0;a>i;i++)if(t===kt)t(this[i],e);else for(o in e)t(this[i],o,e[o]);return this}for(var s=t.$dv,u=s===n?Math.min(a,1):a,c=0;u>c;c++){var l=t(this[c],e,r);s=s?s+l:l}return s}for(i=0;a>i;i++)t(this[i],e,r);return this}}),o({removeData:Ct,on:function Zo(t,e,n,r){if($(r))throw Dr("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(gt(t)){var i=Et(t,!0),o=i.events,a=i.handle;a||(a=i.handle=Rt(t,o));for(var s=e.indexOf(" ")>=0?e.split(" "):[e],u=s.length;u--;){e=s[u];var c=o[e];c||(o[e]=[],"mouseenter"===e||"mouseleave"===e?Zo(t,Mr[e],function(t){var n=this,r=t.relatedTarget;(!r||r!==n&&!n.contains(r))&&a(t,e)}):"$destroy"!==e&&Tr(t,e,a),c=o[e]),c.push(n)}}},off:xt,one:function(t,e,n){t=nr(t),t.on(e,function r(){t.off(e,n),t.off(e,r)}),t.on(e,n)},replaceWith:function(t,e){var n,r=t.parentNode;_t(t),o(new bt(e),function(e){n?r.insertBefore(e,n.nextSibling):r.replaceChild(e,t),n=e})},children:function(t){var e=[];return o(t.childNodes,function(t){t.nodeType===br&&e.push(t)}),e},contents:function(t){return t.contentDocument||t.childNodes||[]},append:function(t,e){var n=t.nodeType;if(n===br||n===Er){e=new bt(e);for(var r=0,i=e.length;i>r;r++){var o=e[r];t.appendChild(o)}}},prepend:function(t,e){if(t.nodeType===br){var n=t.firstChild;o(new bt(e),function(e){t.insertBefore(e,n)})}},wrap:function(t,e){e=nr(e).eq(0).clone()[0];var n=t.parentNode;n&&n.replaceChild(e,t),e.appendChild(t)},remove:Dt,detach:function(t){Dt(t,!0)},after:function(t,e){var n=t,r=t.parentNode;e=new bt(e);for(var i=0,o=e.length;o>i;i++){var a=e[i];r.insertBefore(a,n.nextSibling),n=a}},addClass:Tt,removeClass:St,toggleClass:function(t,e,n){e&&o(e.split(" "),function(e){var r=n;g(r)&&(r=!At(t,e)),(r?Tt:St)(t,e)})},parent:function(t){var e=t.parentNode;return e&&e.nodeType!==Er?e:null},next:function(t){return t.nextElementSibling},find:function(t,e){return t.getElementsByTagName?t.getElementsByTagName(e):[]},clone:wt,triggerHandler:function(t,e,n){var r,i,a,s=e.type||e,u=Et(t),c=u&&u.events,l=c&&c[s];l&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:p,type:s,target:t},e.type&&(r=f(r,e)),i=P(l),a=n?[r].concat(n):[r],o(i,function(e){r.isImmediatePropagationStopped()||e.apply(t,a)}))}},function(t,e){bt.prototype[e]=function(e,n,r){for(var i,o=0,a=this.length;a>o;o++)g(i)?(i=t(this[o],e,n,r),$(i)&&(i=nr(i))):Ot(i,t(this[o],e,n,r));return $(i)?i:this},bt.prototype.bind=bt.prototype.on,bt.prototype.unbind=bt.prototype.off}),Lt.prototype={put:function(t,e){this[Bt(t,this.nextUid)]=e},get:function(t){return this[Bt(t,this.nextUid)]},remove:function(t){var e=this[t=Bt(t,this.nextUid)];return delete this[t],e}};var qr=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Hr=/,/,Wr=/^\s*(_?)(\S+?)\1\s*$/,Xr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Yr=r("$injector");qt.$$annotate=Vt;var Zr=r("$animate"),Gr=["$provide",function(t){this.$$selectors={},this.register=function(e,n){var r=e+"-animation";if(e&&"."!=e.charAt(0))throw Zr("notcsel","Expecting class selector starting with '.' got '{0}'.",e);this.$$selectors[e.substr(1)]=r,t.factory(r,n)},this.classNameFilter=function(t){return 1===arguments.length&&(this.$$classNameFilter=t instanceof RegExp?t:null),this.$$classNameFilter},this.$get=["$$q","$$asyncCallback","$rootScope",function(t,e,n){function r(e){var r,i=t.defer();return i.promise.$$cancelFn=function(){r&&r()},n.$$postDigest(function(){r=e(function(){i.resolve()})}),i.promise}function i(t,e){var n=[],r=[],i=ct();return o((t.attr("class")||"").split(/\s+/),function(t){i[t]=!0}),o(e,function(t,e){var o=i[e];t===!1&&o?r.push(e):t!==!0||o||n.push(e)}),n.length+r.length>0&&[n.length?n:null,r.length?r:null]}function a(t,e,n){for(var r=0,i=e.length;i>r;++r){var o=e[r];t[o]=n}}function s(){return c||(c=t.defer(),e(function(){c.resolve(),c=null})),c.promise}function u(t,e){if(lr.isObject(e)){var n=f(e.from||{},e.to||{});t.css(n)}}var c;return{animate:function(t,e,n){return u(t,{from:e,to:n}),s()},enter:function(t,e,n,r){return u(t,r),n?n.after(t):e.prepend(t),s()},leave:function(t,e){return u(t,e),t.remove(),s()},move:function(t,e,n,r){return this.enter(t,e,n,r)},addClass:function(t,e,n){return this.setClass(t,e,[],n)},$$addClassImmediately:function(t,e,n){return t=nr(t),e=b(e)?e:dr(e)?e.join(" "):"",o(t,function(t){Tt(t,e)}),u(t,n),s()},removeClass:function(t,e,n){return this.setClass(t,[],e,n); +},$$removeClassImmediately:function(t,e,n){return t=nr(t),e=b(e)?e:dr(e)?e.join(" "):"",o(t,function(t){St(t,e)}),u(t,n),s()},setClass:function(t,e,n,o){var s=this,u="$$animateClasses",c=!1;t=nr(t);var l=t.data(u);l?o&&l.options&&(l.options=lr.extend(l.options||{},o)):(l={classes:{},options:o},c=!0);var f=l.classes;return e=dr(e)?e:e.split(" "),n=dr(n)?n:n.split(" "),a(f,e,!0),a(f,n,!1),c&&(l.promise=r(function(e){var n=t.data(u);if(t.removeData(u),n){var r=i(t,n.classes);r&&s.$$setClassImmediately(t,r[0],r[1],n.options)}e()}),t.data(u,l)),l.promise},$$setClassImmediately:function(t,e,n,r){return e&&this.$$addClassImmediately(t,e),n&&this.$$removeClassImmediately(t,n),u(t,r),s()},enabled:p,cancel:p}}]}],Kr=r("$compile");Kt.$inject=["$provide","$$sanitizeUriProvider"];var Jr=/^((?:x|data)[\:\-_])/i,Qr=r("$controller"),ti="application/json",ei={"Content-Type":ti+";charset=utf-8"},ni=/^\[|^\{(?!\{)/,ri={"[":/]$/,"{":/}$/},ii=/^\)\]\}',?\n/,oi=r("$interpolate"),ai=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,si={http:80,https:443,ftp:21},ui=r("$location"),ci={$$html5:!1,$$replace:!1,absUrl:Se("$$absUrl"),url:function(t){if(g(t))return this.$$url;var e=ai.exec(t);return(e[1]||""===t)&&this.path(decodeURIComponent(e[1])),(e[2]||e[1]||""===t)&&this.search(e[3]||""),this.hash(e[5]||""),this},protocol:Se("$$protocol"),host:Se("$$host"),port:Se("$$port"),path:Te("$$path",function(t){return t=null!==t?t.toString():"","/"==t.charAt(0)?t:"/"+t}),search:function(t,e){switch(arguments.length){case 0:return this.$$search;case 1:if(b(t)||w(t))t=t.toString(),this.$$search=X(t);else{if(!y(t))throw ui("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");t=N(t,{}),o(t,function(e,n){null==e&&delete t[n]}),this.$$search=t}break;default:g(e)||null===e?delete this.$$search[t]:this.$$search[t]=e}return this.$$compose(),this},hash:Te("$$hash",function(t){return null!==t?t.toString():""}),replace:function(){return this.$$replace=!0,this}};o([Ae,ke,Ee],function(t){t.prototype=Object.create(ci),t.prototype.state=function(e){if(!arguments.length)return this.$$state;if(t!==Ee||!this.$$html5)throw ui("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=g(e)?null:e,this}});var li=r("$parse"),fi=Function.prototype.call,hi=Function.prototype.apply,di=Function.prototype.bind,pi=ct();o({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(t,e){t.constant=t.literal=t.sharedGetter=!0,pi[e]=t}),pi["this"]=function(t){return t},pi["this"].sharedGetter=!0;var mi=f(ct(),{"+":function(t,e,r,i){return r=r(t,e),i=i(t,e),$(r)?$(i)?r+i:r:$(i)?i:n},"-":function(t,e,n,r){return n=n(t,e),r=r(t,e),($(n)?n:0)-($(r)?r:0)},"*":function(t,e,n,r){return n(t,e)*r(t,e)},"/":function(t,e,n,r){return n(t,e)/r(t,e)},"%":function(t,e,n,r){return n(t,e)%r(t,e)},"===":function(t,e,n,r){return n(t,e)===r(t,e)},"!==":function(t,e,n,r){return n(t,e)!==r(t,e)},"==":function(t,e,n,r){return n(t,e)==r(t,e)},"!=":function(t,e,n,r){return n(t,e)!=r(t,e)},"<":function(t,e,n,r){return n(t,e)":function(t,e,n,r){return n(t,e)>r(t,e)},"<=":function(t,e,n,r){return n(t,e)<=r(t,e)},">=":function(t,e,n,r){return n(t,e)>=r(t,e)},"&&":function(t,e,n,r){return n(t,e)&&r(t,e)},"||":function(t,e,n,r){return n(t,e)||r(t,e)},"!":function(t,e,n){return!n(t,e)},"=":!0,"|":!0}),vi={n:"\n",f:"\f",r:"\r",t:" ",v:"\x0B","'":"'",'"':'"'},gi=function(t){this.options=t};gi.prototype={constructor:gi,lex:function(t){for(this.text=t,this.index=0,this.tokens=[];this.index="0"&&"9">=t&&"string"==typeof t},isWhitespace:function(t){return" "===t||"\r"===t||" "===t||"\n"===t||"\x0B"===t||" "===t},isIdent:function(t){return t>="a"&&"z">=t||t>="A"&&"Z">=t||"_"===t||"$"===t},isExpOperator:function(t){return"-"===t||"+"===t||this.isNumber(t)},throwError:function(t,e,n){n=n||this.index;var r=$(e)?"s "+e+"-"+this.index+" ["+this.text.substring(e,n)+"]":" "+n;throw li("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",t,r,this.text)},readNumber:function(){for(var t="",e=this.index;this.indext){var o=this.tokens[t],a=o.text;if(a===e||a===n||a===r||a===i||!e&&!n&&!r&&!i)return o}return!1},expect:function(t,e,n,r){var i=this.peek(t,e,n,r);return i?(this.tokens.shift(),i):!1},consume:function(t){if(0===this.tokens.length)throw li("ueoe","Unexpected end of expression: {0}",this.text);var e=this.expect(t);return e||this.throwError("is unexpected, expecting ["+t+"]",this.peek()),e},unaryFn:function(t,e){var n=mi[t];return f(function(t,r){return n(t,r,e)},{constant:e.constant,inputs:[e]})},binaryFn:function(t,e,n,r){var i=mi[e];return f(function(e,r){return i(e,r,t,n)},{constant:t.constant&&n.constant,inputs:!r&&[t,n]})},identifier:function(){for(var t=this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)t+=this.consume().text+this.consume().text;return Le(t,this.options,this.text)},constant:function(){var t=this.consume().value;return f(function(){return t},{constant:!0,literal:!0})},statements:function(){for(var t=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&t.push(this.filterChain()),!this.expect(";"))return 1===t.length?t[0]:function(e,n){for(var r,i=0,o=t.length;o>i;i++)r=t[i](e,n);return r}},filterChain:function(){for(var t,e=this.expression();t=this.expect("|");)e=this.filter(e);return e},filter:function(t){var e,r,i=this.$filter(this.consume().text);if(this.peek(":"))for(e=[],r=[];this.expect(":");)e.push(this.expression());var o=[t].concat(e||[]);return f(function(o,a){var s=t(o,a);if(r){r[0]=s;for(var u=e.length;u--;)r[u+1]=e[u](o,a);return i.apply(n,r)}return i(s)},{constant:!i.$stateful&&o.every(Ne),inputs:!i.$stateful&&o})},expression:function(){return this.assignment()},assignment:function(){var t,e,n=this.ternary();return(e=this.expect("="))?(n.assign||this.throwError("implies assignment but ["+this.text.substring(0,e.index)+"] can not be assigned to",e),t=this.ternary(),f(function(e,r){return n.assign(e,t(e,r),r)},{inputs:[n,t]})):n},ternary:function(){var t,e,n=this.logicalOR();if((e=this.expect("?"))&&(t=this.assignment(),this.consume(":"))){var r=this.assignment();return f(function(e,i){return n(e,i)?t(e,i):r(e,i)},{constant:n.constant&&t.constant&&r.constant})}return n},logicalOR:function(){for(var t,e=this.logicalAND();t=this.expect("||");)e=this.binaryFn(e,t.text,this.logicalAND(),!0);return e},logicalAND:function(){for(var t,e=this.equality();t=this.expect("&&");)e=this.binaryFn(e,t.text,this.equality(),!0);return e},equality:function(){for(var t,e=this.relational();t=this.expect("==","!=","===","!==");)e=this.binaryFn(e,t.text,this.relational());return e},relational:function(){for(var t,e=this.additive();t=this.expect("<",">","<=",">=");)e=this.binaryFn(e,t.text,this.additive());return e},additive:function(){for(var t,e=this.multiplicative();t=this.expect("+","-");)e=this.binaryFn(e,t.text,this.multiplicative());return e},multiplicative:function(){for(var t,e=this.unary();t=this.expect("*","/","%");)e=this.binaryFn(e,t.text,this.unary());return e},unary:function(){var t;return this.expect("+")?this.primary():(t=this.expect("-"))?this.binaryFn($i.ZERO,t.text,this.unary()):(t=this.expect("!"))?this.unaryFn(t.text,this.unary()):this.primary()},fieldAccess:function(t){var e=this.identifier();return f(function(r,i,o){var a=o||t(r,i);return null==a?n:e(a)},{assign:function(n,r,i){var o=t(n,i);return o||t.assign(n,o={},i),e.assign(o,r)}})},objectIndex:function(t){var e=this.text,r=this.expression();return this.consume("]"),f(function(i,o){var a,s=t(i,o),u=Me(r(i,o),e);return ze(u,e),s?a=De(s[u],e):n},{assign:function(n,i,o){var a=ze(Me(r(n,o),e),e),s=De(t(n,o),e);return s||t.assign(n,s={},o),s[a]=i}})},functionCall:function(t,e){var r=[];if(")"!==this.peekToken().text)do r.push(this.expression());while(this.expect(","));this.consume(")");var i=this.text,o=r.length?[]:null;return function(a,s){var u=e?e(a,s):$(e)?n:a,c=t(a,s,u)||p;if(o)for(var l=r.length;l--;)o[l]=De(r[l](a,s),i);De(u,i),je(c,i);var f=c.apply?c.apply(u,o):c(o[0],o[1],o[2],o[3],o[4]);return o&&(o.length=0),De(f,i)}},arrayDeclaration:function(){var t=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;t.push(this.expression())}while(this.expect(","));return this.consume("]"),f(function(e,n){for(var r=[],i=0,o=t.length;o>i;i++)r.push(t[i](e,n));return r},{literal:!0,constant:t.every(Ne),inputs:t})},object:function(){var t=[],e=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var n=this.consume();n.constant?t.push(n.value):n.identifier?t.push(n.text):this.throwError("invalid key",n),this.consume(":"),e.push(this.expression())}while(this.expect(","));return this.consume("}"),f(function(n,r){for(var i={},o=0,a=e.length;a>o;o++)i[t[o]]=e[o](n,r);return i},{literal:!0,constant:e.every(Ne),inputs:e})}};var yi=ct(),bi=ct(),wi=Object.prototype.valueOf,_i=r("$sce"),xi={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Kr=r("$compile"),Ci=e.createElement("a"),Ei=on(t.location.href);un.$inject=["$provide"],hn.$inject=["$locale"],dn.$inject=["$locale"];var ki=".",Ai={yyyy:vn("FullYear",4),yy:vn("FullYear",2,0,!0),y:vn("FullYear",1),MMMM:gn("Month"),MMM:gn("Month",!0),MM:vn("Month",2,1),M:vn("Month",1,1),dd:vn("Date",2),d:vn("Date",1),HH:vn("Hours",2),H:vn("Hours",1),hh:vn("Hours",2,-12),h:vn("Hours",1,-12),mm:vn("Minutes",2),m:vn("Minutes",1),ss:vn("Seconds",2),s:vn("Seconds",1),sss:vn("Milliseconds",3),EEEE:gn("Day"),EEE:gn("Day",!0),a:_n,Z:$n,ww:wn(2),w:wn(1),G:xn,GG:xn,GGG:xn,GGGG:Cn},Si=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Ti=/^\-?\d+$/;En.$inject=["$locale"];var Oi=v(Gn),Ii=v(Jn);Sn.$inject=["$parse"];var zi=v({restrict:"E",compile:function(t,e){return e.href||e.xlinkHref||e.name?void 0:function(t,e){if("a"===e[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===ur.call(e.prop("href"))?"xlink:href":"href";e.on("click",function(t){e.attr(n)||t.preventDefault()})}}}}),Mi={};o(Lr,function(t,e){if("multiple"!=t){var n=Jt("ng-"+e);Mi[n]=function(){return{restrict:"A",priority:100,link:function(t,r,i){t.$watch(i[n],function(t){i.$set(e,!!t)})}}}}}),o(Vr,function(t,e){Mi[e]=function(){return{priority:100,link:function(t,n,r){if("ngPattern"===e&&"/"==r.ngPattern.charAt(0)){var i=r.ngPattern.match(Yn);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}t.$watch(r[e],function(t){r.$set(e,t)})}}}}),o(["src","srcset","href"],function(t){var e=Jt("ng-"+t);Mi[e]=function(){return{priority:99,link:function(n,r,i){var o=t,a=t;"href"===t&&"[object SVGAnimatedString]"===ur.call(r.prop("href"))&&(a="xlinkHref",i.$attr[a]="xlink:href",o=null),i.$observe(e,function(e){return e?(i.$set(a,e),void(er&&o&&r.prop(o,i[a]))):void("href"===t&&i.$set(a,null))})}}}});var Di={$addControl:p,$$renameControl:On,$removeControl:p,$setValidity:p,$setDirty:p,$setPristine:p,$setSubmitted:p},ji="ng-submitted";In.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Ni=function(t){return["$timeout",function(e){var r={name:"form",restrict:t?"EAC":"E",controller:In,compile:function(r,i){r.addClass(go).addClass(mo);var o=i.name?"name":t&&i.ngForm?"ngForm":!1;return{pre:function(t,r,i,a){if(!("action"in i)){var s=function(e){t.$apply(function(){a.$commitViewValue(),a.$setSubmitted()}),e.preventDefault()};Tr(r[0],"submit",s),r.on("$destroy",function(){e(function(){Or(r[0],"submit",s)},0,!1)})}var u=a.$$parentForm;o&&(Pe(t,null,a.$name,a,a.$name),i.$observe(o,function(e){a.$name!==e&&(Pe(t,null,a.$name,n,a.$name),u.$$renameControl(a,e),Pe(t,null,a.$name,a,a.$name))})),r.on("$destroy",function(){u.$removeControl(a),o&&Pe(t,null,i[o],n,a.$name),f(a,Di)})}}}};return r}]},Pi=Ni(),Ri=Ni(!0),Fi=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,Bi=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Li=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Ui=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Vi=/^(\d{4})-(\d{2})-(\d{2})$/,qi=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Hi=/^(\d{4})-W(\d\d)$/,Wi=/^(\d{4})-(\d\d)$/,Xi=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Yi={text:Mn,date:Pn("date",Vi,Nn(Vi,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":Pn("datetimelocal",qi,Nn(qi,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:Pn("time",Xi,Nn(Xi,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:Pn("week",Hi,jn,"yyyy-Www"),month:Pn("month",Wi,Nn(Wi,["yyyy","MM"]),"yyyy-MM"),number:Fn,url:Bn,email:Ln,radio:Un,checkbox:qn,hidden:p,button:p,submit:p,reset:p,file:p},Zi=["$browser","$sniffer","$filter","$parse",function(t,e,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,a,s){s[0]&&(Yi[Gn(a.type)]||Yi.text)(i,o,a,s[0],e,t,n,r)}}}}],Gi=/^(true|false|\d+)$/,Ki=function(){return{restrict:"A",priority:100,compile:function(t,e){return Gi.test(e.ngValue)?function(t,e,n){n.$set("value",t.$eval(n.ngValue))}:function(t,e,n){t.$watch(n.ngValue,function(t){n.$set("value",t)})}}}},Ji=["$compile",function(t){return{restrict:"AC",compile:function(e){return t.$$addBindingClass(e),function(e,r,i){t.$$addBindingInfo(r,i.ngBind),r=r[0],e.$watch(i.ngBind,function(t){r.textContent=t===n?"":t})}}}}],Qi=["$interpolate","$compile",function(t,e){return{compile:function(r){return e.$$addBindingClass(r),function(r,i,o){var a=t(i.attr(o.$attr.ngBindTemplate));e.$$addBindingInfo(i,a.expressions),i=i[0],o.$observe("ngBindTemplate",function(t){i.textContent=t===n?"":t})}}}}],to=["$sce","$parse","$compile",function(t,e,n){return{restrict:"A",compile:function(r,i){var o=e(i.ngBindHtml),a=e(i.ngBindHtml,function(t){return(t||"").toString()});return n.$$addBindingClass(r),function(e,r,i){n.$$addBindingInfo(r,i.ngBindHtml),e.$watch(a,function(){r.html(t.getTrustedHtml(o(e))||"")})}}}}],eo=v({restrict:"A",require:"ngModel",link:function(t,e,n,r){r.$viewChangeListeners.push(function(){t.$eval(n.ngChange)})}}),no=Hn("",!0),ro=Hn("Odd",0),io=Hn("Even",1),oo=Tn({compile:function(t,e){e.$set("ngCloak",n),t.removeClass("ng-cloak")}}),ao=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],so={},uo={blur:!0,focus:!0};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(t){var e=Jt("ng-"+t);so[e]=["$parse","$rootScope",function(n,r){return{restrict:"A",compile:function(i,o){var a=n(o[e],null,!0);return function(e,n){n.on(t,function(n){var i=function(){a(e,{$event:n})};uo[t]&&r.$$phase?e.$evalAsync(i):e.$apply(i)})}}}}]});var co=["$animate",function(t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,u,c;n.$watch(i.ngIf,function(n){n?u||a(function(n,o){u=o,n[n.length++]=e.createComment(" end ngIf: "+i.ngIf+" "),s={clone:n},t.enter(n,r.parent(),r)}):(c&&(c.remove(),c=null),u&&(u.$destroy(),u=null),s&&(c=ut(s.clone),t.leave(c).then(function(){c=null}),s=null))})}}}],lo=["$templateRequest","$anchorScroll","$animate",function(t,e,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:lr.noop,compile:function(r,i){var o=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(r,i,u,c,l){var f,h,d,p=0,m=function(){h&&(h.remove(),h=null),f&&(f.$destroy(),f=null),d&&(n.leave(d).then(function(){h=null}),h=d,d=null)};r.$watch(o,function(o){var u=function(){!$(s)||s&&!r.$eval(s)||e()},h=++p;o?(t(o,!0).then(function(t){if(h===p){var e=r.$new();c.template=t;var s=l(e,function(t){m(),n.enter(t,null,i).then(u)});f=e,d=s,f.$emit("$includeContentLoaded",o),r.$eval(a)}},function(){h===p&&(m(),r.$emit("$includeContentError",o))}),r.$emit("$includeContentRequested",o)):(m(),c.template=null)})}}}}],fo=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){return/SVG/.test(r[0].toString())?(r.empty(),void t($t(o.template,e).childNodes)(n,function(t){r.append(t)},{futureParentElement:r})):(r.html(o.template),void t(r.contents())(n))}}}],ho=Tn({priority:450,compile:function(){return{pre:function(t,e,n){t.$eval(n.ngInit)}}}}),po=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(t,e,r,i){var a=e.attr(r.$attr.ngList)||", ",s="false"!==r.ngTrim,u=s?pr(a):a,c=function(t){if(!g(t)){var e=[];return t&&o(t.split(u),function(t){t&&e.push(s?pr(t):t)}),e}};i.$parsers.push(c),i.$formatters.push(function(t){return dr(t)?t.join(a):n}),i.$isEmpty=function(t){return!t||!t.length}}}},mo="ng-valid",vo="ng-invalid",go="ng-pristine",$o="ng-dirty",yo="ng-untouched",bo="ng-touched",wo="ng-pending",_o=r("ngModel"),xo=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(t,e,r,i,a,s,u,c,l,f){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=n,this.$name=f(r.name||"",!1)(t);var h,d=a(r.ngModel),m=d.assign,v=d,y=m,b=null,_=this;this.$$setOptions=function(t){if(_.$options=t,t&&t.getterSetter){var e=a(r.ngModel+"()"),n=a(r.ngModel+"($$$p)");v=function(t){var n=d(t);return x(n)&&(n=e(t)),n},y=function(t,e){x(d(t))?n(t,{$$$p:_.$modelValue}):m(t,_.$modelValue)}}else if(!d.assign)throw _o("nonassign","Expression '{0}' is non-assignable. Element: {1}",r.ngModel,H(i))},this.$render=p,this.$isEmpty=function(t){return g(t)||""===t||null===t||t!==t};var C=i.inheritedData("$formController")||Di,E=0;Wn({ctrl:this,$element:i,set:function(t,e){t[e]=!0},unset:function(t,e){delete t[e]},parentForm:C,$animate:s}),this.$setPristine=function(){_.$dirty=!1,_.$pristine=!0,s.removeClass(i,$o),s.addClass(i,go)},this.$setDirty=function(){_.$dirty=!0,_.$pristine=!1,s.removeClass(i,go),s.addClass(i,$o),C.$setDirty()},this.$setUntouched=function(){_.$touched=!1,_.$untouched=!0,s.setClass(i,yo,bo)},this.$setTouched=function(){_.$touched=!0,_.$untouched=!1,s.setClass(i,bo,yo)},this.$rollbackViewValue=function(){u.cancel(b),_.$viewValue=_.$$lastCommittedViewValue,_.$render()},this.$validate=function(){if(!w(_.$modelValue)||!isNaN(_.$modelValue)){var t=_.$$lastCommittedViewValue,e=_.$$rawModelValue,r=_.$valid,i=_.$modelValue,o=_.$options&&_.$options.allowInvalid;_.$$runValidators(e,t,function(t){o||r===t||(_.$modelValue=t?e:n,_.$modelValue!==i&&_.$$writeModelToScope())})}},this.$$runValidators=function(t,e,r){function i(){var t=_.$$parserName||"parse";return h!==n?(h||(o(_.$validators,function(t,e){u(e,null)}),o(_.$asyncValidators,function(t,e){u(e,null)})),u(t,h),h):(u(t,null),!0)}function a(){var n=!0;return o(_.$validators,function(r,i){var o=r(t,e);n=n&&o,u(i,o)}),n?!0:(o(_.$asyncValidators,function(t,e){u(e,null)}),!1)}function s(){var r=[],i=!0;o(_.$asyncValidators,function(o,a){var s=o(t,e);if(!I(s))throw _o("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",s);u(a,n),r.push(s.then(function(){u(a,!0)},function(t){i=!1,u(a,!1)}))}),r.length?l.all(r).then(function(){c(i)},p):c(!0)}function u(t,e){f===E&&_.$setValidity(t,e)}function c(t){f===E&&r(t)}E++;var f=E;return i()&&a()?void s():void c(!1)},this.$commitViewValue=function(){var t=_.$viewValue;u.cancel(b),(_.$$lastCommittedViewValue!==t||""===t&&_.$$hasNativeValidators)&&(_.$$lastCommittedViewValue=t,_.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function e(){_.$modelValue!==a&&_.$$writeModelToScope()}var r=_.$$lastCommittedViewValue,i=r;if(h=g(i)?n:!0)for(var o=0;o<_.$parsers.length;o++)if(i=_.$parsers[o](i),g(i)){h=!1;break}w(_.$modelValue)&&isNaN(_.$modelValue)&&(_.$modelValue=v(t));var a=_.$modelValue,s=_.$options&&_.$options.allowInvalid;_.$$rawModelValue=i,s&&(_.$modelValue=i,e()),_.$$runValidators(i,_.$$lastCommittedViewValue,function(t){s||(_.$modelValue=t?i:n,e())})},this.$$writeModelToScope=function(){y(t,_.$modelValue),o(_.$viewChangeListeners,function(t){try{t()}catch(n){e(n)}})},this.$setViewValue=function(t,e){_.$viewValue=t,(!_.$options||_.$options.updateOnDefault)&&_.$$debounceViewValueCommit(e)},this.$$debounceViewValueCommit=function(e){var n,r=0,i=_.$options;i&&$(i.debounce)&&(n=i.debounce,w(n)?r=n:w(n[e])?r=n[e]:w(n["default"])&&(r=n["default"])),u.cancel(b),r?b=u(function(){_.$commitViewValue()},r):c.$$phase?_.$commitViewValue():t.$apply(function(){_.$commitViewValue()})},t.$watch(function(){var e=v(t);if(e!==_.$modelValue&&(_.$modelValue===_.$modelValue||e===e)){_.$modelValue=_.$$rawModelValue=e,h=n;for(var r=_.$formatters,i=r.length,o=e;i--;)o=r[i](o);_.$viewValue!==o&&(_.$viewValue=_.$$lastCommittedViewValue=o,_.$render(),_.$$runValidators(e,o,p))}return e})}],Co=["$rootScope",function(t){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:xo,priority:1,compile:function(e){return e.addClass(go).addClass(yo).addClass(mo),{pre:function(t,e,n,r){var i=r[0],o=r[1]||Di;i.$$setOptions(r[2]&&r[2].$options),o.$addControl(i),n.$observe("name",function(t){i.$name!==t&&o.$$renameControl(i,t)}),t.$on("$destroy",function(){o.$removeControl(i)})},post:function(e,n,r,i){var o=i[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,function(t){o.$$debounceViewValueCommit(t&&t.type)}),n.on("blur",function(n){o.$touched||(t.$$phase?e.$evalAsync(o.$setTouched):e.$apply(o.$setTouched))})}}}}}],Eo=/(\s+|^)default(\s+|$)/,ko=function(){return{restrict:"A",controller:["$scope","$attrs",function(t,e){var r=this;this.$options=t.$eval(e.ngModelOptions),this.$options.updateOn!==n?(this.$options.updateOnDefault=!1,this.$options.updateOn=pr(this.$options.updateOn.replace(Eo,function(){return r.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},Ao=Tn({terminal:!0,priority:1e3}),So=["$locale","$interpolate",function(t,e){var n=/{}/g,r=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(i,a,s){function u(t){a.text(t||"")}var c,l=s.count,f=s.$attr.when&&a.attr(s.$attr.when),h=s.offset||0,d=i.$eval(f)||{},p={},m=e.startSymbol(),v=e.endSymbol(),g=m+l+"-"+h+v,$=lr.noop;o(s,function(t,e){var n=r.exec(e);if(n){var i=(n[1]?"-":"")+Gn(n[2]);d[i]=a.attr(s.$attr[e])}}),o(d,function(t,r){p[r]=e(t.replace(n,g))}),i.$watch(l,function(e){var n=parseFloat(e),r=isNaN(n);r||n in d||(n=t.pluralCat(n-h)),n===c||r&&isNaN(c)||($(),$=i.$watch(p[n],u),c=n)})}}}],To=["$parse","$animate",function(t,a){var s="$$NG_REMOVED",u=r("ngRepeat"),c=function(t,e,n,r,i,o,a){t[n]=r,i&&(t[i]=o),t.$index=e,t.$first=0===e,t.$last=e===a-1,t.$middle=!(t.$first||t.$last),t.$odd=!(t.$even=0===(1&e))},l=function(t){return t.clone[0]},f=function(t){return t.clone[t.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(r,h){var d=h.ngRepeat,p=e.createComment(" end ngRepeat: "+d+" "),m=d.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw u("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",d);var v=m[1],g=m[2],$=m[3],y=m[4];if(m=v.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!m)throw u("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",v);var b=m[3]||m[1],w=m[2];if($&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test($)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test($)))throw u("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",$);var _,x,C,E,k={$id:Bt};return y?_=t(y):(C=function(t,e){return Bt(e)},E=function(t){return t}),function(t,e,r,h,m){_&&(x=function(e,n,r){return w&&(k[w]=e),k[b]=n,k.$index=r,_(t,k)});var v=ct();t.$watchCollection(g,function(r){var h,g,y,_,k,A,S,T,O,I,z,M,D=e[0],j=ct();if($&&(t[$]=r),i(r))O=r,T=x||C;else{T=x||E,O=[];for(var N in r)r.hasOwnProperty(N)&&"$"!=N.charAt(0)&&O.push(N);O.sort()}for(_=O.length,z=new Array(_),h=0;_>h;h++)if(k=r===O?h:O[h],A=r[k],S=T(k,A,h),v[S])I=v[S],delete v[S],j[S]=I,z[h]=I;else{if(j[S])throw o(z,function(t){t&&t.scope&&(v[t.id]=t)}),u("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",d,S,A);z[h]={id:S,scope:n,clone:n},j[S]=!0}for(var P in v){if(I=v[P],M=ut(I.clone),a.leave(M),M[0].parentNode)for(h=0,g=M.length;g>h;h++)M[h][s]=!0;I.scope.$destroy()}for(h=0;_>h;h++)if(k=r===O?h:O[h],A=r[k],I=z[h],I.scope){y=D;do y=y.nextSibling;while(y&&y[s]);l(I)!=y&&a.move(ut(I.clone),null,nr(D)),D=f(I),c(I.scope,h,b,A,w,k,_)}else m(function(t,e){I.scope=e;var n=p.cloneNode(!1);t[t.length++]=n,a.enter(t,null,nr(D)),D=n,I.clone=t,j[I.id]=I,c(I.scope,h,b,A,w,k,_)});v=j})}}}}],Oo="ng-hide",Io="ng-hide-animate",zo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngShow,function(e){t[e?"removeClass":"addClass"](n,Oo,{tempClasses:Io})})}}}],Mo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngHide,function(e){t[e?"addClass":"removeClass"](n,Oo,{tempClasses:Io})})}}}],Do=Tn(function(t,e,n){t.$watch(n.ngStyle,function(t,n){n&&t!==n&&o(n,function(t,n){e.css(n,"")}),t&&e.css(t)},!0)}),jo=["$animate",function(t){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,a){var s=i.ngSwitch||i.on,u=[],c=[],l=[],f=[],h=function(t,e){return function(){t.splice(e,1)}};n.$watch(s,function(n){var r,i;for(r=0,i=l.length;i>r;++r)t.cancel(l[r]);for(l.length=0,r=0,i=f.length;i>r;++r){var s=ut(c[r].clone);f[r].$destroy();var d=l[r]=t.leave(s);d.then(h(l,r))}c.length=0,f.length=0,(u=a.cases["!"+n]||a.cases["?"])&&o(u,function(n){n.transclude(function(r,i){f.push(i);var o=n.element;r[r.length++]=e.createComment(" end ngSwitchWhen: ");var a={clone:r};c.push(a),t.enter(r,o.parent(),o)})})})}}}],No=Tn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["!"+n.ngSwitchWhen]=r.cases["!"+n.ngSwitchWhen]||[],r.cases["!"+n.ngSwitchWhen].push({transclude:i,element:e})}}),Po=Tn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:e})}}),Ro=Tn({restrict:"EAC",link:function(t,e,n,i,o){if(!o)throw r("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",H(e));o(function(t){e.empty(),e.append(t)})}}),Fo=["$templateCache",function(t){return{restrict:"E",terminal:!0,compile:function(e,n){if("text/ng-template"==n.type){var r=n.id,i=e[0].text;t.put(r,i)}}}}],Bo=r("ngOptions"),Lo=v({restrict:"A",terminal:!0}),Uo=["$compile","$parse",function(t,r){var i=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,s={$setViewValue:p};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(t,e,n){var r,i,o=this,a={},u=s;o.databound=n.ngModel,o.init=function(t,e,n){u=t,r=e,i=n},o.addOption=function(e,n){at(e,'"option value"'),a[e]=!0,u.$viewValue==e&&(t.val(e),i.parent()&&i.remove()),n&&n[0].hasAttribute("selected")&&(n[0].selected=!0)},o.removeOption=function(t){this.hasOption(t)&&(delete a[t],u.$viewValue===t&&this.renderUnknownOption(t))},o.renderUnknownOption=function(e){var n="? "+Bt(e)+" ?";i.val(n),t.prepend(i),t.val(n),i.prop("selected",!0)},o.hasOption=function(t){return a.hasOwnProperty(t)},e.$on("$destroy",function(){o.renderUnknownOption=p})}],link:function(s,u,c,l){function f(t,e,n,r){n.$render=function(){var t=n.$viewValue;r.hasOption(t)?(C.parent()&&C.remove(),e.val(t),""===t&&p.prop("selected",!0)):null==t&&p?e.val(""):r.renderUnknownOption(t)},e.on("change",function(){t.$apply(function(){C.parent()&&C.remove(),n.$setViewValue(e.val())})})}function h(t,e,n){var r;n.$render=function(){var t=new Lt(n.$viewValue);o(e.find("option"),function(e){e.selected=$(t.get(e.value))})},t.$watch(function(){R(r,n.$viewValue)||(r=P(n.$viewValue),n.$render())}),e.on("change",function(){t.$apply(function(){var t=[];o(e.find("option"),function(e){ +e.selected&&t.push(e.value)}),n.$setViewValue(t)})})}function d(e,s,u){function c(t,n,r){return R[A]=r,O&&(R[O]=n),t(e,R)}function l(){e.$apply(function(){var t,n=M(e)||[];if(g)t=[],o(s.val(),function(e){e=j?N[e]:e,t.push(f(e,n[e]))});else{var r=j?N[s.val()]:s.val();t=f(r,n[r])}u.$setViewValue(t),C()})}function f(t,e){if("?"===t)return n;if(""===t)return null;var r=T?T:z;return c(r,t,e)}function h(){var t,n=M(e);if(n&&dr(n)){t=new Array(n.length);for(var r=0,i=n.length;i>r;r++)t[r]=c(k,r,n[r]);return t}if(n){t={};for(var o in n)n.hasOwnProperty(o)&&(t[o]=c(k,o,n[o]))}return t}function d(t){var e;if(g)if(j&&dr(t)){e=new Lt([]);for(var n=0;nA;A++)h=A,O&&(h=q[A],"$"===h.charAt(0))||(p=V[h],t=c(I,h,p)||"",(n=B[t])||(n=B[t]=[],L.push(t)),S=W(h,p),X=X||S,D=c(k,h,p),D=$(D)?D:"",F=j?j(e,R):O?q[A]:A,j&&(N[F]=h),n.push({id:F,label:D,selected:S}));for(g||(b||null===U?B[""].unshift({id:"",label:"",selected:!X}):X||B[""].unshift({id:"?",label:"",selected:!0})),E=0,y=L.length;y>E;E++){for(t=L[E],n=B[t],P.length<=E?(i={element:x.clone().attr("label",t),label:n.label},l=[i],P.push(l),s.append(i.element)):(l=P[E],i=l[0],i.label!=t&&i.element.attr("label",i.label=t)),T=null,A=0,C=n.length;C>A;A++)r=n[A],(f=l[A+1])?(T=f.element,f.label!==r.label&&(v(H,f.label,!1),v(H,r.label,!0),T.text(f.label=r.label),T.prop("label",f.label)),f.id!==r.id&&T.val(f.id=r.id),T[0].selected!==r.selected&&(T.prop("selected",f.selected=r.selected),er&&T.prop("selected",f.selected))):(""===r.id&&b?z=b:(z=_.clone()).val(r.id).prop("selected",r.selected).attr("selected",r.selected).prop("label",r.label).text(r.label),l.push(f={element:z,label:r.label,id:r.id,selected:r.selected}),v(H,r.label,!0),T?T.after(z):i.element.append(z),T=z);for(A++;l.length>A;)r=l.pop(),v(H,r.label,!1),r.element.remove()}for(;P.length>E;){for(n=P.pop(),A=1;A0?m.addOption(e):0>t&&m.removeOption(e)})}var E;if(!(E=y.match(i)))throw Bo("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",y,H(s));var k=r(E[2]||E[1]),A=E[4]||E[6],S=/ as /.test(E[0])&&E[1],T=S?r(S):null,O=E[5],I=r(E[3]||""),z=r(E[2]?E[1]:A),M=r(E[7]),D=E[8],j=D?r(E[8]):null,N={},P=[[{element:s,label:""}]],R={};b&&(t(b)(e),b.removeClass("ng-scope"),b.remove()),s.empty(),s.on("change",l),u.$render=C,e.$watchCollection(M,p),e.$watchCollection(h,p),g&&e.$watchCollection(function(){return u.$modelValue},p)}if(l[1]){for(var p,m=l[0],v=l[1],g=c.multiple,y=c.ngOptions,b=!1,w=!1,_=nr(e.createElement("option")),x=nr(e.createElement("optgroup")),C=_.clone(),E=0,k=u.children(),A=k.length;A>E;E++)if(""===k[E].value){p=b=k.eq(E);break}m.init(v,b,C),g&&(v.$isEmpty=function(t){return!t||0===t.length}),y?d(s,u,v):g?h(s,u,v):f(s,u,v,m)}}}}],Vo=["$interpolate",function(t){var e={addOption:p,removeOption:p};return{restrict:"E",priority:100,compile:function(n,r){if(g(r.value)){var i=t(n.text(),!0);i||r.$set("value",n.text())}return function(t,n,r){var o="$selectController",a=n.parent(),s=a.data(o)||a.parent().data(o);s&&s.databound||(s=e),i?t.$watch(i,function(t,e){r.$set("value",t),e!==t&&s.removeOption(e),s.addOption(t,n)}):s.addOption(r.value,n),n.on("$destroy",function(){s.removeOption(r.value)})}}}}],qo=v({restrict:"E",terminal:!1}),Ho=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){r&&(n.required=!0,r.$validators.required=function(t,e){return!n.required||!r.$isEmpty(e)},n.$observe("required",function(){r.$validate()}))}}},Wo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,i,o){if(o){var a,s=i.ngPattern||i.pattern;i.$observe("pattern",function(t){if(b(t)&&t.length>0&&(t=new RegExp("^"+t+"$")),t&&!t.test)throw r("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,t,H(e));a=t||n,o.$validate()}),o.$validators.pattern=function(t,e){return o.$isEmpty(e)||g(a)||a.test(e)}}}}},Xo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=-1;n.$observe("maxlength",function(t){var e=h(t);i=isNaN(e)?-1:e,r.$validate()}),r.$validators.maxlength=function(t,e){return 0>i||r.$isEmpty(e)||e.length<=i}}}}},Yo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=0;n.$observe("minlength",function(t){i=h(t)||0,r.$validate()}),r.$validators.minlength=function(t,e){return r.$isEmpty(e)||e.length>=i}}}}};return t.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(rt(),dt(lr),void nr(e).ready(function(){J(e,Q)}))}(window,document),!window.angular.$$csp()&&window.angular.element(document.head).prepend(''),function(t,e,n){"use strict";e.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){var t="$$ngAnimateChildren";return function(n,r,i){var o=i.ngAnimateChildren;e.isString(o)&&0===o.length?r.data(t,!0):n.$watch(o,function(e){r.data(t,!!e)})}}).factory("$$animateReflow",["$$rAF","$document",function(t,e){var n=e[0].body;return function(e){return t(function(){e(n.offsetWidth)})}}]).config(["$provide","$animateProvider",function(r,i){function o(t){for(var e=0;e0&&[o.join(" "),a.join(" ")]}function I(t){if(t){var e=[],n={},i=t.substr(1).split(".");(v.transitions||v.animations)&&e.push(r.get(h[""]));for(var o=0;o0&&_(function(){r.triggerHandler(i,{event:t,className:n})})}function d(){h("before")}function p(){h("after")}function m(){h("close"),u()}function v(){v.hasBeenRun||(v.hasBeenRun=!0,a())}function $(){if(!$.hasBeenRun){w&&w.applyStyles(),$.hasBeenRun=!0,s&&s.tempClasses&&f(s.tempClasses,function(t){c.removeClass(r,t)});var e=r.data(g);e&&(w&&w.isClassBased?j(r,n):(_(function(){var e=r.data(g)||{};M==e.index&&j(r,n,t)}),r.data(g,e))),m()}}var b=l,w=z(r,t,n,s);if(!w)return v(),d(),p(),$(),b;t=w.event,n=w.className;var x=e.element._data(w.node);if(x=x&&x.events,i||(i=o?o.parent():r.parent()),N(r,i))return v(),d(),p(),$(),b;var C=r.data(g)||{},E=C.active||{},k=C.totalActive||0,A=C.last,S=!1;if(k>0){var T=[];if(w.isClassBased){if("setClass"==A.event)T.push(A),j(r,n);else if(E[n]){var O=E[n];O.event==t?S=!0:(T.push(O),j(r,n))}}else if("leave"==t&&E["ng-leave"])S=!0;else{for(var I in E)T.push(E[I]);C={},j(r,!0)}T.length>0&&f(T,function(t){t.cancel()})}if(!w.isClassBased||w.isSetClassOperation||"animate"==t||S||(S="addClass"==t==r.hasClass(n)),S)return v(),d(),p(),m(),b;E=C.active||{},k=C.totalActive||0,"leave"==t&&r.one("$destroy",function(t){var n=e.element(this),r=n.data(g);if(r){var i=r.active["ng-leave"];i&&(i.cancel(),j(n,"ng-leave"))}}),c.addClass(r,y),s&&s.tempClasses&&f(s.tempClasses,function(t){c.addClass(r,t)});var M=R++;return k++,E[n]=w,r.data(g,{last:w,active:E,index:M,totalActive:k}),d(),w.before(function(e){var i=r.data(g);e=e||!i||!i.active[n]||w.isClassBased&&i.active[n].event!=t,v(),e===!0?$():(p(),w.after($))}),w.cancel}function D(t){var n=o(t);if(n){var r=e.isFunction(n.getElementsByClassName)?n.getElementsByClassName(y):n.querySelectorAll("."+y);f(r,function(t){t=e.element(t);var n=t.data(g);n&&n.active&&f(n.active,function(t){t.cancel()})})}}function j(t,e){if(u(t,w))b.disabled||(b.running=!1,b.structural=!1);else if(e){var n=t.data(g)||{},r=e===!0;!r&&n.active&&n.active[e]&&(n.totalActive--,delete n.active[e]),(r||!n.totalActive)&&(c.removeClass(t,y),t.removeData(g))}}function N(t,n){if(b.disabled)return!0;if(u(t,w))return b.running;var r,i,o;do{if(0===n.length)break;var a=u(n,w),s=a?b:n.data(g)||{};if(s.disabled)return!0;if(a&&(o=!0),r!==!1){var c=n.data($);e.isDefined(c)&&(r=c)}i=i||s.running||s.last&&!s.last.isClassBased}while(n=n.parent());return!o||!r&&i}c=k,w.data(g,b);var P=x.$watch(function(){return E.totalPendingRequests},function(t,e){0===t&&(P(),x.$$postDigest(function(){x.$$postDigest(function(){b.running=!1})}))}),R=0,F=i.classNameFilter(),B=F?function(t){return F.test(t)}:function(){return!0};return{animate:function(t,e,n,r,i){return r=r||"ng-inline-animate",i=T(i)||{},i.from=n?e:null,i.to=n?n:e,S(function(e){return M("animate",r,s(t),null,null,l,i,e)})},enter:function(n,r,i,o){return o=T(o),n=e.element(n),r=a(r),i=a(i),A(n,!0),t.enter(n,r,i),S(function(t){return M("enter","ng-enter",s(n),r,i,l,o,t)})},leave:function(n,r){return r=T(r),n=e.element(n),D(n),A(n,!0),S(function(e){return M("leave","ng-leave",s(n),null,null,function(){t.leave(n)},r,e)})},move:function(n,r,i,o){return o=T(o),n=e.element(n),r=a(r),i=a(i),D(n),A(n,!0),t.move(n,r,i),S(function(t){return M("move","ng-move",s(n),r,i,l,o,t)})},addClass:function(t,e,n){return this.setClass(t,e,[],n)},removeClass:function(t,e,n){return this.setClass(t,[],e,n)},setClass:function(n,r,i,a){a=T(a);var u="$$animateClasses";if(n=e.element(n),n=s(n),A(n))return t.$$setClassImmediately(n,r,i,a);var c,l=n.data(u),h=!!l;return l||(l={},l.classes={}),c=l.classes,r=d(r)?r:r.split(" "),f(r,function(t){t&&t.length&&(c[t]=!0)}),i=d(i)?i:i.split(" "),f(i,function(t){t&&t.length&&(c[t]=!1)}),h?(a&&l.options&&(l.options=e.extend(l.options||{},a)),l.promise):(n.data(u,l={classes:c,options:a}),l.promise=S(function(e){var r,i,a,s=o(n);if(s&&(r=n.data(u),n.removeData(u),a=n.parent(),i=s.parentNode),!i||i.$$NG_REMOVED||s.$$NG_REMOVED)return void e();var c=n.data(g)||{},l=O(n,r,c.active);return l?M("setClass",l,n,a,null,function(){l[0]&&t.$$addClassImmediately(n,l[0]),l[1]&&t.$$removeClassImmediately(n,l[1])},r.options,e):e()}))},cancel:function(t){t.$$cancelFn()},enabled:function(t,e){switch(arguments.length){case 2:if(t)j(e);else{var n=e.data(g)||{};n.disabled=!0,e.data(g,n)}break;case 1:b.disabled=!t;break;default:t=!b.disabled}return!!t}}}]),i.register("",["$window","$sniffer","$timeout","$$animateReflow",function(r,i,a,s){function u(){j||(j=s(function(){Y=[],j=null,W={}}))}function h(t,e){j&&j(),Y.push(e),j=s(function(){f(Y,function(t){t()}),Y=[],j=null,W={}})}function m(t,n){var r=o(t);t=e.element(r),K.push(t);var i=Date.now()+n;G>=i||(a.cancel(Z),G=i,Z=a(function(){g(K),K=[]},n,!1))}function g(t){f(t,function(t){var e=t.data(U);e&&f(e.closeAnimationFns,function(t){t()})})}function $(t,e){var n=e?W[e]:null;if(!n){var i=0,o=0,a=0,s=0;f(t,function(t){if(t.nodeType==v){var e=r.getComputedStyle(t)||{},n=e[O+N];i=Math.max(y(n),i);var u=e[O+R];o=Math.max(y(u),o);e[z+R];s=Math.max(y(e[z+R]),s);var c=y(e[z+N]);c>0&&(c*=parseInt(e[z+F],10)||1),a=Math.max(c,a)}}),n={total:0,transitionDelay:o,transitionDuration:i,animationDelay:s,animationDuration:a},e&&(W[e]=n)}return n}function y(t){var e=0,n=p(t)?t.split(/\s*,\s*/):[];return f(n,function(t){e=Math.max(parseFloat(t)||0,e)}),e}function b(t){var e=t.parent(),n=e.data(L);return n||(e.data(L,++X),n=X),n+"-"+o(t).getAttribute("class")}function w(t,e,n,r){var i=["ng-enter","ng-leave","ng-move"].indexOf(n)>=0,a=b(e),s=a+" "+n,u=W[s]?++W[s].total:0,l={};if(u>0){var f=n+"-stagger",h=a+" "+f,d=!W[h];d&&c.addClass(e,f),l=$(e,h),d&&c.removeClass(e,f)}c.addClass(e,n);var p=e.data(U)||{},m=$(e,s),v=m.transitionDuration,g=m.animationDuration;if(i&&0===v&&0===g)return c.removeClass(e,n),!1;var y=r||i&&v>0,w=g>0&&l.animationDelay>0&&0===l.animationDuration,_=p.closeAnimationFns||[];e.data(U,{stagger:l,cacheKey:s,running:p.running||0,itemIndex:u,blockTransition:y,closeAnimationFns:_});var E=o(e);return y&&(x(E,!0),r&&e.css(r)),w&&C(E,!0),!0}function _(t,e,n,r,i){function s(){e.off(R,u),c.removeClass(e,d),c.removeClass(e,p),N&&a.cancel(N),S(e,n);var t=o(e);for(var r in g)t.style.removeProperty(g[r])}function u(t){t.stopPropagation();var e=t.originalEvent||t,n=e.$manualTimeStamp||e.timeStamp||Date.now(),i=parseFloat(e.elapsedTime.toFixed(V));Math.max(n-P,0)>=z&&i>=T&&r()}var l=o(e),h=e.data(U);if(-1==l.getAttribute("class").indexOf(n)||!h)return void r();var d="",p="";f(n.split(" "),function(t,e){var n=(e>0?" ":"")+t;d+=n+"-active",p+=n+"-pending"});var v="",g=[],y=h.itemIndex,b=h.stagger,w=0;if(y>0){var _=0;b.transitionDelay>0&&0===b.transitionDuration&&(_=b.transitionDelay*y);var E=0;b.animationDelay>0&&0===b.animationDuration&&(E=b.animationDelay*y,g.push(D+"animation-play-state")),w=Math.round(100*Math.max(_,E))/100}w||(c.addClass(e,d),h.blockTransition&&x(l,!1));var k=h.cacheKey+" "+d,A=$(e,k),T=Math.max(A.transitionDuration,A.animationDuration);if(0===T)return c.removeClass(e,d),S(e,n),void r();!w&&i&&Object.keys(i).length>0&&(A.transitionDuration||(e.css("transition",A.animationDuration+"s linear all"),g.push("transition")),e.css(i));var O=Math.max(A.transitionDelay,A.animationDelay),z=O*H;if(g.length>0){var j=l.getAttribute("style")||"";";"!==j.charAt(j.length-1)&&(j+=";"),l.setAttribute("style",j+" "+v)}var N,P=Date.now(),R=M+" "+I,F=(O+T)*q,B=(w+F)*H;return w>0&&(c.addClass(e,p),N=a(function(){N=null,A.transitionDuration>0&&x(l,!1),A.animationDuration>0&&C(l,!1),c.addClass(e,d),c.removeClass(e,p),i&&(0===A.transitionDuration&&e.css("transition",A.animationDuration+"s linear all"),e.css(i),g.push("transition"))},w*H,!1)),e.on(R,u),h.closeAnimationFns.push(function(){s(),r()}),h.running++,m(e,B),s}function x(t,e){t.style[O+P]=e?"none":""}function C(t,e){t.style[z+B]=e?"paused":""}function E(t,e,n,r){return w(t,e,n,r)?function(t){t&&S(e,n)}:void 0}function k(t,e,n,r,i){return e.data(U)?_(t,e,n,r,i):(S(e,n),void r())}function A(t,e,n,r,i){var o=E(t,e,n,i.from);if(!o)return u(),void r();var a=o;return h(e,function(){a=k(t,e,n,r,i.to)}),function(t){(a||l)(t)}}function S(t,e){c.removeClass(t,e);var n=t.data(U);n&&(n.running&&n.running--,n.running&&0!==n.running||t.removeData(U))}function T(t,e){var n="";return t=d(t)?t:t.split(/\s+/),f(t,function(t,r){t&&t.length>0&&(n+=(r>0?" ":"")+t+e)}),n}var O,I,z,M,D="";t.ontransitionend===n&&t.onwebkittransitionend!==n?(D="-webkit-",O="WebkitTransition",I="webkitTransitionEnd transitionend"):(O="transition",I="transitionend"),t.onanimationend===n&&t.onwebkitanimationend!==n?(D="-webkit-",z="WebkitAnimation",M="webkitAnimationEnd animationend"):(z="animation",M="animationend");var j,N="Duration",P="Property",R="Delay",F="IterationCount",B="PlayState",L="$$ngAnimateKey",U="$$ngAnimateCSS3Data",V=3,q=1.5,H=1e3,W={},X=0,Y=[],Z=null,G=0,K=[];return{animate:function(t,e,n,r,i,o){return o=o||{},o.from=n,o.to=r,A("animate",t,e,i,o)},enter:function(t,e,n){return n=n||{},A("enter",t,"ng-enter",e,n)},leave:function(t,e,n){return n=n||{},A("leave",t,"ng-leave",e,n)},move:function(t,e,n){return n=n||{},A("move",t,"ng-move",e,n)},beforeSetClass:function(t,e,n,r,i){i=i||{};var o=T(n,"-remove")+" "+T(e,"-add"),a=E("setClass",t,o,i.from);return a?(h(t,r),a):(u(),void r())},beforeAddClass:function(t,e,n,r){r=r||{};var i=E("addClass",t,T(e,"-add"),r.from);return i?(h(t,n),i):(u(),void n())},beforeRemoveClass:function(t,e,n,r){r=r||{};var i=E("removeClass",t,T(e,"-remove"),r.from);return i?(h(t,n),i):(u(),void n())},setClass:function(t,e,n,r,i){i=i||{},n=T(n,"-remove"),e=T(e,"-add");var o=n+" "+e;return k("setClass",t,o,r,i.to)},addClass:function(t,e,n,r){return r=r||{},k("addClass",t,T(e,"-add"),n,r.to)},removeClass:function(t,e,n,r){return r=r||{},k("removeClass",t,T(e,"-remove"),n,r.to)}}}])}])}(window,window.angular),function(t,e,n){"use strict";e.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(t,r){function i(){var t,i,o,u;for(t in s)l(a[t])&&(r.cookies(t,n),delete s[t]);for(t in a)i=a[t],e.isString(i)||(i=""+i,a[t]=i),i!==s[t]&&(r.cookies(t,i),s[t]=i,u=!0);if(u){o=r.cookies();for(t in a)a[t]!==o[t]&&(l(o[t])?(delete a[t],delete s[t]):a[t]=s[t]=o[t])}}var o,a={},s={},u=!1,c=e.copy,l=e.isUndefined;return r.addPollFn(function(){var e=r.cookies();o!=e&&(o=e,c(e,s),c(e,a),u&&t.$apply())})(),u=!0,t.$watch(i),a}]).factory("$cookieStore",["$cookies",function(t){return{get:function(n){var r=t[n];return r?e.fromJson(r):r},put:function(n,r){t[n]=e.toJson(r)},remove:function(e){delete t[e]}}}])}(window,window.angular),angular.module("ui-notification",[]),angular.module("ui-notification").provider("Notification",function(){this.options={delay:5e3,startTop:10,startRight:10,verticalSpacing:10,horizontalSpacing:10,positionX:"right",positionY:"top",replaceMessage:!1,templateUrl:"angular-ui-notification.html"},this.setOptions=function(t){if(!angular.isObject(t))throw new Error("Options should be an object!");this.options=angular.extend({},this.options,t)},this.$get=["$timeout","$http","$compile","$templateCache","$rootScope","$injector","$sce","$q","$window",function(t,e,n,r,i,o,a,s,u){var c=this.options,l=c.startTop,f=c.startRight,h=c.verticalSpacing,d=c.horizontalSpacing,p=c.delay,m=[],v=!1,g=function(o,g){var $=s.defer();return"object"!=typeof o&&(o={message:o}),o.scope=o.scope?o.scope:i,o.template=o.templateUrl?o.templateUrl:c.templateUrl,o.delay=angular.isUndefined(o.delay)?p:o.delay,o.type=g?g:"",o.positionY=o.positionY?o.positionY:c.positionY,o.positionX=o.positionX?o.positionX:c.positionX,o.replaceMessage=o.replaceMessage?o.replaceMessage:c.replaceMessage,e.get(o.template,{cache:r}).success(function(e){var r=o.scope.$new();r.message=a.trustAsHtml(o.message),r.title=a.trustAsHtml(o.title),r.t=o.type.substr(0,1),r.delay=o.delay;var i=function(){for(var t=0,e=0,n=l,r=f,i=[],a=m.length-1;a>=0;a--){var s=m[a];if(o.replaceMessage&&awindow.innerHeight&&(p=l,e++,t=0);var v=n=p?0===t?p:p+h:l,g=r+e*(d+c);s.css(s._positionY,v+"px"),"center"==s._positionX?s.css("left",parseInt(window.innerWidth/2-c/2)+"px"):s.css(s._positionX,g+"px"),i[s._positionY+s._positionX]=v+u,t++}}},s=n(e)(r);s._positionY=o.positionY,s._positionX=o.positionX,s.addClass(o.type),s.bind("webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd click",function(t){t=t.originalEvent||t,("click"===t.type||"opacity"===t.propertyName&&t.elapsedTime>=1)&&(s.remove(),m.splice(m.indexOf(s),1),i())}),angular.isNumber(o.delay)&&t(function(){s.addClass("killed")},o.delay),angular.element(document.getElementsByTagName("body")).append(s);var c=-(parseInt(s[0].offsetHeight)+50);s.css(s._positionY,c+"px"),m.push(s),r._templateElement=s,r.kill=function(e){e?(m.splice(m.indexOf(r._templateElement),1),r._templateElement.remove(),t(i)):r._templateElement.addClass("killed")},t(i),v||(angular.element(u).bind("resize",function(){t(i)}),v=!0),$.resolve(r)}).error(function(t){throw new Error("Template ("+o.template+") could not be loaded. "+t)}),$.promise};return g.primary=function(t){return this(t,"primary")},g.error=function(t){return this(t,"error")},g.success=function(t){return this(t,"success")},g.info=function(t){return this(t,"info")},g.warning=function(t){return this(t,"warning")},g.clearAll=function(){angular.forEach(m,function(t){t.addClass("killed")})},g}]}),angular.module("ui-notification").run(["$templateCache",function(t){t.put("angular-ui-notification.html",'

')}]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(t,e,n){"use strict";function r(t,e){return V(new(V(function(){},{prototype:t})),e)}function i(t){return U(arguments,function(e){e!==t&&U(e,function(e,n){t.hasOwnProperty(n)||(t[n]=e)})}),t}function o(t,e){var n=[];for(var r in t.path){if(t.path[r]!==e.path[r])break;n.push(t.path[r])}return n}function a(t){if(Object.keys)return Object.keys(t);var e=[];return U(t,function(t,n){e.push(n)}),e}function s(t,e){if(Array.prototype.indexOf)return t.indexOf(e,Number(arguments[2])||0);var n=t.length>>>0,r=Number(arguments[2])||0;for(r=0>r?Math.ceil(r):Math.floor(r),0>r&&(r+=n);n>r;r++)if(r in t&&t[r]===e)return r;return-1}function u(t,e,n,r){var i,u=o(n,r),c={},l=[];for(var f in u)if(u[f]&&u[f].params&&(i=a(u[f].params),i.length))for(var h in i)s(l,i[h])>=0||(l.push(i[h]),c[i[h]]=t[i[h]]);return V({},c,e)}function c(t,e,n){if(!n){n=[];for(var r in t)n.push(r)}for(var i=0;i "));if($[n]=r,F(t))v.push(n,[function(){return e.get(t)}],c);else{var i=e.annotate(t);U(i,function(t){t!==n&&u.hasOwnProperty(t)&&d(u[t],t)}),v.push(n,t,i)}g.pop(),$[n]=o}}function p(t){return B(t)&&t.then&&t.$$promises}if(!B(u))throw new Error("'invocables' must be an object");var m=a(u||{}),v=[],g=[],$={};return U(u,d),u=g=$=null,function(r,o,a){function s(){--b||(w||i(y,o.$$values),g.$$values=y,g.$$promises=g.$$promises||!0,delete g.$$inheritedValues,d.resolve(y))}function u(t){g.$$failure=t,d.reject(t)}function c(n,i,o){function c(t){f.reject(t),u(t)}function l(){if(!P(g.$$failure))try{f.resolve(e.invoke(i,a,y)),f.promise.then(function(t){y[n]=t,s()},c)}catch(t){c(t)}}var f=t.defer(),h=0;U(o,function(t){$.hasOwnProperty(t)&&!r.hasOwnProperty(t)&&(h++,$[t].then(function(e){y[t]=e,--h||l()},c))}),h||l(),$[n]=f.promise}if(p(r)&&a===n&&(a=o,o=r,r=null),r){if(!B(r))throw new Error("'locals' must be an object")}else r=l;if(o){if(!p(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=f;var d=t.defer(),g=d.promise,$=g.$$promises={},y=V({},r),b=1+v.length/3,w=!1;if(P(o.$$failure))return u(o.$$failure),g;o.$$inheritedValues&&i(y,h(o.$$inheritedValues,m)),V($,o.$$promises),o.$$values?(w=i(y,h(o.$$values,m)),g.$$inheritedValues=h(o.$$values,m),s()):(o.$$inheritedValues&&(g.$$inheritedValues=h(o.$$inheritedValues,m)),o.then(s,u));for(var _=0,x=v.length;x>_;_+=3)r.hasOwnProperty(v[_])?s():c(v[_],v[_+1],v[_+2]);return g}},this.resolve=function(t,e,n,r){return this.study(t)(e,n,r)}}function v(t,e,n){this.fromConfig=function(t,e,n){return P(t.template)?this.fromString(t.template,e):P(t.templateUrl)?this.fromUrl(t.templateUrl,e):P(t.templateProvider)?this.fromProvider(t.templateProvider,e,n):null},this.fromString=function(t,e){return R(t)?t(e):t},this.fromUrl=function(n,r){return R(n)&&(n=n(r)),null==n?null:t.get(n,{cache:e,headers:{Accept:"text/html"}}).then(function(t){return t.data})},this.fromProvider=function(t,e,r){return n.invoke(t,null,r||{params:e})}}function g(t,e,i){function o(e,n,r,i){if(v.push(e),p[e])return p[e];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(e))throw new Error("Invalid parameter name '"+e+"' in pattern '"+t+"'");if(m[e])throw new Error("Duplicate parameter name '"+e+"' in pattern '"+t+"'");return m[e]=new W.Param(e,n,r,i),m[e]}function a(t,e,n,r){var i=["",""],o=t.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!e)return o;switch(n){case!1:i=["(",")"+(r?"?":"")];break;case!0:o=o.replace(/\/$/,""),i=["(?:/(",")|/)?"];break;default:i=["("+n+"|",")?"]}return o+i[0]+e+i[1]}function s(i,o){var a,s,u,c,l;return a=i[2]||i[3],l=e.params[a],u=t.substring(h,i.index),s=o?i[4]:i[4]||("*"==i[1]?".*":null),s&&(c=W.type(s)||r(W.type("string"),{pattern:new RegExp(s,e.caseInsensitive?"i":n)})),{id:a,regexp:s,segment:u,type:c,cfg:l}}e=V({params:{}},B(e)?e:{});var u,c=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,f="^",h=0,d=this.segments=[],p=i?i.params:{},m=this.params=i?i.params.$$new():new W.ParamSet,v=[];this.source=t;for(var g,$,y;(u=c.exec(t))&&(g=s(u,!1),!(g.segment.indexOf("?")>=0));)$=o(g.id,g.type,g.cfg,"path"),f+=a(g.segment,$.type.pattern.source,$.squash,$.isOptional),d.push(g.segment),h=c.lastIndex;y=t.substring(h);var b=y.indexOf("?");if(b>=0){var w=this.sourceSearch=y.substring(b);if(y=y.substring(0,b),this.sourcePath=t.substring(0,h+b),w.length>0)for(h=0;u=l.exec(w);)g=s(u,!0),$=o(g.id,g.type,g.cfg,"search"),h=c.lastIndex}else this.sourcePath=t,this.sourceSearch="";f+=a(y)+(e.strict===!1?"/?":"")+"$",d.push(y),this.regexp=new RegExp(f,e.caseInsensitive?"i":n),this.prefix=d[0],this.$$paramNames=v}function $(t){V(this,t)}function y(){function t(t){return null!=t?t.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):t}function i(t){return null!=t?t.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):t}function o(){return{strict:m,caseInsensitive:h}}function u(t){return R(t)||L(t)&&R(t[t.length-1])}function c(){for(;_.length;){var t=_.shift();if(t.pattern)throw new Error("You cannot override a type's .pattern at runtime.");e.extend(b[t.name],f.invoke(t.def))}}function l(t){V(this,t||{})}W=this;var f,h=!1,m=!0,v=!1,b={},w=!0,_=[],x={string:{encode:t,decode:i,is:function(t){return null==t||!P(t)||"string"==typeof t},pattern:/[^\/]*/},"int":{encode:t,decode:function(t){return parseInt(t,10)},is:function(t){return P(t)&&this.decode(t.toString())===t},pattern:/\d+/},bool:{encode:function(t){return t?1:0},decode:function(t){return 0!==parseInt(t,10)},is:function(t){return t===!0||t===!1},pattern:/0|1/},date:{encode:function(t){return this.is(t)?[t.getFullYear(),("0"+(t.getMonth()+1)).slice(-2),("0"+t.getDate()).slice(-2)].join("-"):n},decode:function(t){if(this.is(t))return t;var e=this.capture.exec(t);return e?new Date(e[1],e[2]-1,e[3]):n},is:function(t){return t instanceof Date&&!isNaN(t.valueOf())},equals:function(t,e){return this.is(t)&&this.is(e)&&t.toISOString()===e.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:e.toJson,decode:e.fromJson,is:e.isObject,equals:e.equals,pattern:/[^\/]*/},any:{encode:e.identity,decode:e.identity,equals:e.equals,pattern:/.*/}};y.$$getDefaultValue=function(t){if(!u(t.value))return t.value;if(!f)throw new Error("Injectable functions cannot be called at configuration time");return f.invoke(t.value)},this.caseInsensitive=function(t){return P(t)&&(h=t),h},this.strictMode=function(t){return P(t)&&(m=t),m},this.defaultSquashPolicy=function(t){if(!P(t))return v;if(t!==!0&&t!==!1&&!F(t))throw new Error("Invalid squash policy: "+t+". Valid policies: false, true, arbitrary-string");return v=t,t},this.compile=function(t,e){return new g(t,V(o(),e))},this.isMatcher=function(t){if(!B(t))return!1;var e=!0;return U(g.prototype,function(n,r){R(n)&&(e=e&&P(t[r])&&R(t[r]))}),e},this.type=function(t,e,n){if(!P(e))return b[t];if(b.hasOwnProperty(t))throw new Error("A type named '"+t+"' has already been defined.");return b[t]=new $(V({name:t},e)),n&&(_.push({name:t,def:n}),w||c()),this},U(x,function(t,e){b[e]=new $(V({name:e},t))}),b=r(b,{}),this.$get=["$injector",function(t){return f=t,w=!1,c(),U(x,function(t,e){b[e]||(b[e]=new $(t))}),this}],this.Param=function(t,r,i,o){function c(t){var e=B(t)?a(t):[],n=-1===s(e,"value")&&-1===s(e,"type")&&-1===s(e,"squash")&&-1===s(e,"array");return n&&(t={value:t}),t.$$fn=u(t.value)?t.value:function(){return t.value},t}function l(n,r,i){if(n.type&&r)throw new Error("Param '"+t+"' has two type configurations.");return r?r:n.type?e.isString(n.type)?b[n.type]:n.type instanceof $?n.type:new $(n.type):"config"===i?b.any:b.string}function h(){var e={array:"search"===o?"auto":!1},n=t.match(/\[\]$/)?{array:!0}:{};return V(e,n,i).array}function m(t,e){var n=t.squash;if(!e||n===!1)return!1;if(!P(n)||null==n)return v;if(n===!0||F(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}function g(t,e,r,i){var o,a,u=[{from:"",to:r||e?n:""},{from:null,to:r||e?n:""}];return o=L(t.replace)?t.replace:[],F(i)&&o.push({from:i,to:n}),a=p(o,function(t){return t.from}),d(u,function(t){return-1===s(a,t.from)}).concat(o)}function y(){if(!f)throw new Error("Injectable functions cannot be called at configuration time");var t=f.invoke(i.$$fn);if(null!==t&&t!==n&&!x.type.is(t))throw new Error("Default value ("+t+") for parameter '"+x.id+"' is not an instance of Type ("+x.type.name+")");return t}function w(t){function e(t){return function(e){return e.from===t}}function n(t){var n=p(d(x.replace,e(t)),function(t){return t.to});return n.length?n[0]:t}return t=n(t),P(t)?x.type.$normalize(t):y()}function _(){return"{Param:"+t+" "+r+" squash: '"+k+"' optional: "+E+"}"}var x=this;i=c(i),r=l(i,r,o);var C=h();r=C?r.$asArray(C,"search"===o):r, +"string"!==r.name||C||"path"!==o||i.value!==n||(i.value="");var E=i.value!==n,k=m(i,E),A=g(i,C,E,k);V(this,{id:t,type:r,location:o,array:C,squash:k,replace:A,isOptional:E,value:w,dynamic:n,config:i,toString:_})},l.prototype={$$new:function(){return r(this,V(new l,{$$parent:this}))},$$keys:function(){for(var t=[],e=[],n=this,r=a(l.prototype);n;)e.push(n),n=n.$$parent;return e.reverse(),U(e,function(e){U(a(e),function(e){-1===s(t,e)&&-1===s(r,e)&&t.push(e)})}),t},$$values:function(t){var e={},n=this;return U(n.$$keys(),function(r){e[r]=n[r].value(t&&t[r])}),e},$$equals:function(t,e){var n=!0,r=this;return U(r.$$keys(),function(i){var o=t&&t[i],a=e&&e[i];r[i].type.equals(o,a)||(n=!1)}),n},$$validates:function(t){var r,i,o,a,s,u=this.$$keys();for(r=0;ri;i++)if(e(c[i]))return;l&&e(l)}}function p(){return u=u||i.$on("$locationChangeSuccess",d)}var m,v=a.baseHref(),g=r.url();return c.sort(function(t,e){var n=t.prefix?t.prefix.length:0,r=e.prefix?e.prefix.length:0;return r-n}),f||p(),{sync:function(){d()},listen:function(){return p()},update:function(t){return t?void(g=r.url()):void(r.url()!==g&&(r.url(g),r.replace()))},push:function(t,e,i){var o=t.format(e||{});null!==o&&e&&e["#"]&&(o+="#"+e["#"]),r.url(o),m=i&&i.$$avoidResync?r.url():n,i&&i.replace&&r.replace()},href:function(n,i,o){if(!n.validates(i))return null;var a=t.html5Mode();e.isObject(a)&&(a=a.enabled),a=a&&s.history;var u=n.format(i);if(o=o||{},a||null===u||(u="#"+t.hashPrefix()+u),null!==u&&i&&i["#"]&&(u+="#"+i["#"]),u=h(u,a,o.absolute),!o.absolute||!u)return u;var c=!a&&u?"/":"",l=r.port();return l=80===l||443===l?"":":"+l,[r.protocol(),"://",r.host(),l,c,u].join("")}}}var u,c=[],l=null,f=!1;this.rule=function(t){if(!R(t))throw new Error("'rule' must be a function");return c.push(t),this},this.otherwise=function(t){if(F(t)){var e=t;t=function(){return e}}else if(!R(t))throw new Error("'rule' must be a function");return l=t,this},this.when=function(t,e){var n,s=F(e);if(F(t)&&(t=r.compile(t)),!s&&!R(e)&&!L(e))throw new Error("invalid 'handler' in when()");var u={matcher:function(t,e){return s&&(n=r.compile(e),e=["$match",function(t){return n.format(t)}]),V(function(n,r){return a(n,e,t.exec(r.path(),r.search()))},{prefix:F(t.prefix)?t.prefix:""})},regex:function(t,e){if(t.global||t.sticky)throw new Error("when() RegExp must not be global or sticky");return s&&(n=e,e=["$match",function(t){return o(n,t)}]),V(function(n,r){return a(n,e,t.exec(r.path()))},{prefix:i(t)})}},c={matcher:r.isMatcher(t),regex:t instanceof RegExp};for(var l in c)if(c[l])return this.rule(u[l](t,e));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(t){t===n&&(t=!0),f=t},this.$get=s,s.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function w(t,i){function o(t){return 0===t.indexOf(".")||0===t.indexOf("^")}function h(t,e){if(!t)return n;var r=F(t),i=r?t:t.name,a=o(i);if(a){if(!e)throw new Error("No reference point given for path '"+i+"'");e=h(e);for(var s=i.split("."),u=0,c=s.length,l=e;c>u;u++)if(""!==s[u]||0!==u){if("^"!==s[u])break;if(!l.parent)throw new Error("Path '"+i+"' not valid for state '"+e.name+"'");l=l.parent}else l=e;s=s.slice(u).join("."),i=l.name+(l.name&&s?".":"")+s}var f=E[i];return!f||!r&&(r||f!==t&&f.self!==t)?n:f}function d(t,e){k[t]||(k[t]=[]),k[t].push(e)}function m(t){for(var e=k[t]||[];e.length;)v(e.shift())}function v(e){e=r(e,{self:e,resolve:e.resolve||{},toString:function(){return this.name}});var n=e.name;if(!F(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(E.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var i=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):F(e.parent)?e.parent:B(e.parent)&&F(e.parent.name)?e.parent.name:"";if(i&&!E[i])return d(i,e.self);for(var o in S)R(S[o])&&(e[o]=S[o](e,S.$delegates[o]));return E[n]=e,!e[A]&&e.url&&t.when(e.url,["$match","$stateParams",function(t,n){C.$current.navigable==e&&c(t,n)||C.transitionTo(e,t,{inherit:!0,location:!1})}]),m(n),e}function g(t){return t.indexOf("*")>-1}function $(t){for(var e=t.split("."),n=C.$current.name.split("."),r=0,i=e.length;i>r;r++)"*"===e[r]&&(n[r]="*");return"**"===e[0]&&(n=n.slice(s(n,e[1])),n.unshift("**")),"**"===e[e.length-1]&&(n.splice(s(n,e[e.length-2])+1,Number.MAX_VALUE),n.push("**")),e.length!=n.length?!1:n.join("")===e.join("")}function y(t,e){return F(t)&&!P(e)?S[t]:R(e)&&F(t)?(S[t]&&!S.$delegates[t]&&(S.$delegates[t]=S[t]),S[t]=e,this):this}function b(t,e){return B(t)?e=t:e.name=t,v(e),this}function w(t,i,o,s,f,d,m,v,y){function b(e,n,r,o){var a=t.$broadcast("$stateNotFound",e,n,r);if(a.defaultPrevented)return m.update(),T;if(!a.retry)return null;if(o.$retry)return m.update(),O;var s=C.transition=i.when(a.retry);return s.then(function(){return s!==C.transition?k:(e.options.$retry=!0,C.transitionTo(e.to,e.toParams,e.options))},function(){return T}),m.update(),s}function w(t,n,r,a,u,c){function h(){var n=[];return U(t.views,function(r,i){var a=r.resolve&&r.resolve!==t.resolve?r.resolve:{};a.$template=[function(){return o.load(i,{view:r,locals:u.globals,params:d,notify:c.notify})||""}],n.push(f.resolve(a,u.globals,u.resolve,t).then(function(n){if(R(r.controllerProvider)||L(r.controllerProvider)){var o=e.extend({},a,u.globals);n.$$controller=s.invoke(r.controllerProvider,null,o)}else n.$$controller=r.controller;n.$$state=t,n.$$controllerAs=r.controllerAs,u[i]=n}))}),i.all(n).then(function(){return u.globals})}var d=r?n:l(t.params.$$keys(),n),p={$stateParams:d};u.resolve=f.resolve(t.resolve,p,u.resolve,t);var m=[u.resolve.then(function(t){u.globals=t})];return a&&m.push(a),i.all(m).then(h).then(function(t){return u})}var k=i.reject(new Error("transition superseded")),S=i.reject(new Error("transition prevented")),T=i.reject(new Error("transition aborted")),O=i.reject(new Error("transition failed"));return x.locals={resolve:null,globals:{$stateParams:{}}},C={params:{},current:x.self,$current:x,transition:null},C.reload=function(t){return C.transitionTo(C.current,d,{reload:t||!0,inherit:!1,notify:!0})},C.go=function(t,e,n){return C.transitionTo(t,e,V({inherit:!0,relative:C.$current},n))},C.transitionTo=function(e,n,o){n=n||{},o=V({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},o||{});var a,c=C.$current,f=C.params,p=c.path,v=h(e,o.relative),g=n["#"];if(!P(v)){var $={to:e,toParams:n,options:o},y=b($,c.self,f,o);if(y)return y;if(e=$.to,n=$.toParams,o=$.options,v=h(e,o.relative),!P(v)){if(!o.relative)throw new Error("No such state '"+e+"'");throw new Error("Could not resolve '"+e+"' from state '"+o.relative+"'")}}if(v[A])throw new Error("Cannot transition to abstract state '"+e+"'");if(o.inherit&&(n=u(d,n||{},C.$current,v)),!v.params.$$validates(n))return O;n=v.params.$$values(n),e=v;var E=e.path,T=0,I=E[T],z=x.locals,M=[];if(o.reload){if(F(o.reload)||B(o.reload)){if(B(o.reload)&&!o.reload.name)throw new Error("Invalid reload state object");var D=o.reload===!0?p[0]:h(o.reload);if(o.reload&&!D)throw new Error("No such reload state '"+(F(o.reload)?o.reload:o.reload.name)+"'");for(;I&&I===p[T]&&I!==D;)z=M[T]=I.locals,T++,I=E[T]}}else for(;I&&I===p[T]&&I.ownParams.$$equals(n,f);)z=M[T]=I.locals,T++,I=E[T];if(_(e,n,c,f,z,o))return g&&(n["#"]=g),C.params=n,q(C.params,d),q(l(e.params.$$keys(),d),e.locals.globals.$stateParams),o.location&&e.navigable&&e.navigable.url&&(m.push(e.navigable.url,n,{$$avoidResync:!0,replace:"replace"===o.location}),m.update(!0)),C.transition=null,i.when(C.current);if(n=l(e.params.$$keys(),n||{}),g&&(n["#"]=g),o.notify&&t.$broadcast("$stateChangeStart",e.self,n,c.self,f,o).defaultPrevented)return t.$broadcast("$stateChangeCancel",e.self,n,c.self,f),null==C.transition&&m.update(),S;for(var j=i.when(z),N=T;N=T;r--)a=p[r],a.self.onExit&&s.invoke(a.self.onExit,a.self,a.locals.globals),a.locals=null;for(r=T;r2?c.enter(t,null,n).then(r):c.enter(t,null,n,r)},leave:function(t,n){e.version.minor>2?c.leave(t).then(n):c.leave(t,n)}};if(u){var i=u&&u(n,t);return{enter:function(t,e,n){i.enter(t,null,e),n()},leave:function(t,e){i.leave(t),e()}}}return r()}var s=o(),u=s("$animator"),c=s("$animate"),l={restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,o,s){return function(n,o,u){function c(){function t(){e&&e.remove(),n&&n.$destroy()}var e=f,n=d;n&&(n._willBeDestroyed=!0),h?(g.leave(h,function(){t(),f=null}),f=h):(t(),f=null),h=null,d=null}function l(a){var l,f=k(n,u,o,i),$=f&&t.$current&&t.$current.locals[f];if((a||$!==p)&&!n._willBeDestroyed){l=n.$new(),p=t.$current.locals[f],l.$emit("$viewContentLoading",f);var y=s(l,function(t){g.enter(t,o,function(){d&&d.$emit("$viewContentAnimationEnded"),(e.isDefined(v)&&!v||n.$eval(v))&&r(t)}),c()});h=y,d=l,d.$emit("$viewContentLoaded",f),d.$eval(m)}}var f,h,d,p,m=u.onload||"",v=u.autoscroll,g=a(u,n);n.$on("$stateChangeSuccess",function(){l(!1)}),l(!0)}}};return l}function E(t,e,n,r){return{restrict:"ECA",priority:-400,compile:function(i){var o=i.html();return function(i,a,s){var u=n.$current,c=k(i,s,a,r),l=u&&u.locals[c];if(l){a.data("$uiView",{name:c,state:l.$$state}),a.html(l.$template?l.$template:o);var f=t(a.contents());if(l.$$controller){l.$scope=i,l.$element=a;var h=e(l.$$controller,l);l.$$controllerAs&&(i[l.$$controllerAs]=h),a.data("$ngControllerController",h),a.children().data("$ngControllerController",h)}f(i)}}}}}function k(t,e,n,r){var i=r(e.uiView||e.name||"")(t),o=n.inheritedData("$uiView");return i.indexOf("@")>=0?i:i+"@"+(o?o.state.name:"")}function A(t,e){var n,r=t.match(/^\s*({[^}]*})\s*$/);if(r&&(t=e+"("+r[1]+")"),n=t.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!n||4!==n.length)throw new Error("Invalid state ref '"+t+"'");return{state:n[1],paramExpr:n[3]||null}}function S(t){var e=t.parent().inheritedData("$uiView");return e&&e.state&&e.state.name?e.state:void 0}function T(t){var e="[object SVGAnimatedString]"===Object.prototype.toString.call(t.prop("href")),n="FORM"===t[0].nodeName;return{attr:n?"action":e?"xlink:href":"href",isAnchor:"A"===t.prop("tagName").toUpperCase(),clickable:!n}}function O(t,e,n,r,i){return function(o){var a=o.which||o.button,s=i();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||t.attr("target"))){var u=n(function(){e.go(s.state,s.params,s.options)});o.preventDefault();var c=r.isAnchor&&!s.href?1:0;o.preventDefault=function(){c--<=0&&n.cancel(u)}}}}function I(t,e){return{relative:S(t)||e.$current,inherit:!0}}function z(t,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(r,i,o,a){var s=A(o.uiSref,t.current.name),u={state:s.state,href:null,params:null},c=T(i),l=a[1]||a[0];u.options=V(I(i,t),o.uiSrefOpts?r.$eval(o.uiSrefOpts):{});var f=function(n){n&&(u.params=e.copy(n)),u.href=t.href(s.state,u.params,u.options),l&&l.$$addStateInfo(s.state,u.params),null!==u.href&&o.$set(c.attr,u.href)};s.paramExpr&&(r.$watch(s.paramExpr,function(t){t!==u.params&&f(t)},!0),u.params=e.copy(r.$eval(s.paramExpr))),f(),c.clickable&&i.bind("click",O(i,t,n,c,function(){return u}))}}}function M(t,e){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,r,i,o){function a(e){f.state=e[0],f.params=e[1],f.options=e[2],f.href=t.href(f.state,f.params,f.options),u&&u.$$addStateInfo(ref.state,f.params),f.href&&i.$set(s.attr,f.href)}var s=T(r),u=o[1]||o[0],c=[i.uiState,i.uiStateParams||null,i.uiStateOpts||null],l="["+c.map(function(t){return t||"null"}).join(", ")+"]",f={state:null,params:null,options:null,href:null};n.$watch(l,a,!0),a(n.$eval(l)),s.clickable&&r.bind("click",O(r,t,e,s,function(){return f}))}}}function D(t,e,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(e,r,i,o){function a(e,n,i){var o=t.get(e,S(r)),a=s(e,n);m.push({state:o||{name:e},params:n,hash:a}),v[a]=i}function s(t,n){if(!F(t))throw new Error("state should be a string");return B(n)?t+H(n):(n=e.$eval(n),B(n)?t+H(n):t)}function u(){for(var t=0;t0||(a(t,e,p),u())},e.$on("$stateChangeSuccess",u),u()}]}}function j(t){var e=function(e,n){return t.is(e,n)};return e.$stateful=!0,e}function N(t){var e=function(e,n,r){return t.includes(e,n,r)};return e.$stateful=!0,e}var P=e.isDefined,R=e.isFunction,F=e.isString,B=e.isObject,L=e.isArray,U=e.forEach,V=e.extend,q=e.copy,H=e.toJson;e.module("ui.router.util",["ng"]),e.module("ui.router.router",["ui.router.util"]),e.module("ui.router.state",["ui.router.router","ui.router.util"]),e.module("ui.router",["ui.router.state"]),e.module("ui.router.compat",["ui.router"]),m.$inject=["$q","$injector"],e.module("ui.router.util").service("$resolve",m),v.$inject=["$http","$templateCache","$injector"],e.module("ui.router.util").service("$templateFactory",v);var W;g.prototype.concat=function(t,e){var n={caseInsensitive:W.caseInsensitive(),strict:W.strictMode(),squash:W.defaultSquashPolicy()};return new g(this.sourcePath+t+this.sourceSearch,V(n,e),this)},g.prototype.toString=function(){return this.source},g.prototype.exec=function(t,e){function n(t){function e(t){return t.split("").reverse().join("")}function n(t){return t.replace(/\\-/g,"-")}var r=e(t).split(/-(?!\\)/),i=p(r,e);return p(i,n).reverse()}var r=this.regexp.exec(t);if(!r)return null;e=e||{};var i,o,a,s=this.parameters(),u=s.length,c=this.segments.length-1,l={};if(c!==r.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");var f,h;for(i=0;c>i;i++){for(a=s[i],f=this.params[a],h=r[i+1],o=0;oi;i++){for(a=s[i],l[a]=this.params[a].value(e[a]),f=this.params[a],h=e[a],o=0;oo;o++){var l=s>o,f=r[o],h=i[f],d=h.value(t[f]),m=h.isOptional&&h.type.equals(h.value(),d),v=m?h.squash:!1,g=h.type.encode(d);if(l){var $=n[o+1],y=o+1===s;if(v===!1)null!=g&&(c+=L(g)?p(g,e).join("-"):encodeURIComponent(g)),c+=$;else if(v===!0){var b=c.match(/\/$/)?/\/?(.*)/:/(.*)/;c+=$.match(b)[1]}else F(v)&&(c+=v+$);y&&h.squash===!0&&"/"===c.slice(-1)&&(c=c.slice(0,-1))}else{if(null==g||m&&v!==!1)continue;if(L(g)||(g=[g]),0===g.length)continue;g=p(g,encodeURIComponent).join("&"+f+"="),c+=(a?"&":"?")+(f+"="+g),a=!0}}return c},$.prototype.is=function(t,e){return!0},$.prototype.encode=function(t,e){return t},$.prototype.decode=function(t,e){return t},$.prototype.equals=function(t,e){return t==e},$.prototype.$subPattern=function(){var t=this.pattern.toString();return t.substr(1,t.length-2)},$.prototype.pattern=/.*/,$.prototype.toString=function(){return"{Type:"+this.name+"}"},$.prototype.$normalize=function(t){return this.is(t)?t:this.decode(t)},$.prototype.$asArray=function(t,e){function r(t,e){function r(t,e){return function(){return t[e].apply(t,arguments)}}function i(t){return L(t)?t:P(t)?[t]:[]}function o(t){switch(t.length){case 0:return n;case 1:return"auto"===e?t[0]:t;default:return t}}function a(t){return!t}function s(t,e){return function(n){if(L(n)&&0===n.length)return n;n=i(n);var r=p(n,t);return e===!0?0===d(r,a).length:o(r)}}function u(t){return function(e,n){var r=i(e),o=i(n);if(r.length!==o.length)return!1;for(var a=0;au;u++)s[a[u]]=i(s[a[u]],s);n&&(e.addEventListener("mouseover",this.onMouse,!0),e.addEventListener("mousedown",this.onMouse,!0),e.addEventListener("mouseup",this.onMouse,!0)),e.addEventListener("click",this.onClick,!0),e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1),e.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(e.removeEventListener=function(t,n,r){var i=Node.prototype.removeEventListener;"click"===t?i.call(e,t,n.hijacked||n,r):i.call(e,t,n,r)},e.addEventListener=function(t,n,r){var i=Node.prototype.addEventListener;"click"===t?i.call(e,t,n.hijacked||(n.hijacked=function(t){t.propagationStopped||n(t)}),r):i.call(e,t,n,r)}),"function"==typeof e.onclick&&(o=e.onclick,e.addEventListener("click",function(t){o(t)},!1),e.onclick=null)}}var e=navigator.userAgent.indexOf("Windows Phone")>=0,n=navigator.userAgent.indexOf("Android")>0&&!e,r=/iP(ad|hone|od)/.test(navigator.userAgent)&&!e,i=r&&/OS 4_\d(_\d)?/.test(navigator.userAgent),o=r&&/OS [6-7]_\d/.test(navigator.userAgent),a=navigator.userAgent.indexOf("BB10")>0;t.prototype.needsClick=function(t){switch(t.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(t.disabled)return!0;break;case"input":if(r&&"file"===t.type||t.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(t.className)},t.prototype.needsFocus=function(t){switch(t.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!n;case"input":switch(t.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!t.disabled&&!t.readOnly;default:return/\bneedsfocus\b/.test(t.className)}},t.prototype.sendClick=function(t,e){var n,r;document.activeElement&&document.activeElement!==t&&document.activeElement.blur(),r=e.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(t),!0,!0,window,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,t.dispatchEvent(n)},t.prototype.determineEventType=function(t){return n&&"select"===t.tagName.toLowerCase()?"mousedown":"click"},t.prototype.focus=function(t){var e;r&&t.setSelectionRange&&0!==t.type.indexOf("date")&&"time"!==t.type&&"month"!==t.type?(e=t.value.length,t.setSelectionRange(e,e)):t.focus()},t.prototype.updateScrollParent=function(t){var e,n;if(e=t.fastClickScrollParent,!e||!e.contains(t)){n=t;do{if(n.scrollHeight>n.offsetHeight){e=n,t.fastClickScrollParent=n;break}n=n.parentElement}while(n)}e&&(e.fastClickLastScrollTop=e.scrollTop)},t.prototype.getTargetElementFromEventTarget=function(t){return t.nodeType===Node.TEXT_NODE?t.parentNode:t},t.prototype.onTouchStart=function(t){var e,n,o;if(t.targetTouches.length>1)return!0;if(e=this.getTargetElementFromEventTarget(t.target),n=t.targetTouches[0],r){if(o=window.getSelection(),o.rangeCount&&!o.isCollapsed)return!0;if(!i){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return t.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(e)}}return this.trackingClick=!0,this.trackingClickStart=t.timeStamp,this.targetElement=e,this.touchStartX=n.pageX,this.touchStartY=n.pageY,t.timeStamp-this.lastClickTimen||Math.abs(e.pageY-this.touchStartY)>n?!0:!1},t.prototype.onTouchMove=function(t){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(t.target)||this.touchHasMoved(t))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},t.prototype.findControl=function(t){return void 0!==t.control?t.control:t.htmlFor?document.getElementById(t.htmlFor):t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},t.prototype.onTouchEnd=function(t){var e,a,s,u,c,l=this.targetElement;if(!this.trackingClick)return!0;if(t.timeStamp-this.lastClickTimethis.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=t.timeStamp,a=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,o&&(c=t.changedTouches[0],l=document.elementFromPoint(c.pageX-window.pageXOffset,c.pageY-window.pageYOffset)||l,l.fastClickScrollParent=this.targetElement.fastClickScrollParent),s=l.tagName.toLowerCase(),"label"===s){if(e=this.findControl(l)){if(this.focus(l),n)return!1;l=e}}else if(this.needsFocus(l))return t.timeStamp-a>100||r&&window.top!==window&&"input"===s?(this.targetElement=null,!1):(this.focus(l),this.sendClick(l,t),r&&"select"===s||(this.targetElement=null,t.preventDefault()),!1);return r&&!i&&(u=l.fastClickScrollParent,u&&u.fastClickLastScrollTop!==u.scrollTop)?!0:(this.needsClick(l)||(t.preventDefault(),this.sendClick(l,t)),!1)},t.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},t.prototype.onMouse=function(t){return this.targetElement?t.forwardedTouchEvent?!0:t.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(t.stopImmediatePropagation?t.stopImmediatePropagation():t.propagationStopped=!0,t.stopPropagation(),t.preventDefault(),!1):!0:!0},t.prototype.onClick=function(t){var e;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===t.target.type&&0===t.detail?!0:(e=this.onMouse(t),e||(this.targetElement=null),e)},t.prototype.destroy=function(){var t=this.layer;n&&(t.removeEventListener("mouseover",this.onMouse,!0),t.removeEventListener("mousedown",this.onMouse,!0),t.removeEventListener("mouseup",this.onMouse,!0)),t.removeEventListener("click",this.onClick,!0),t.removeEventListener("touchstart",this.onTouchStart,!1),t.removeEventListener("touchmove",this.onTouchMove,!1),t.removeEventListener("touchend",this.onTouchEnd,!1),t.removeEventListener("touchcancel",this.onTouchCancel,!1)},t.notNeeded=function(t){var e,r,i,o;if("undefined"==typeof window.ontouchstart)return!0;if(r=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!n)return!0;if(e=document.querySelector("meta[name=viewport]")){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(r>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(a&&(i=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),i[1]>=10&&i[2]>=3&&(e=document.querySelector("meta[name=viewport]")))){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===t.style.msTouchAction||"manipulation"===t.style.touchAction?!0:(o=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],o>=27&&(e=document.querySelector("meta[name=viewport]"),e&&(-1!==e.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))?!0:"none"===t.style.touchAction||"manipulation"===t.style.touchAction?!0:!1)},t.attach=function(e,n){return new t(e,n)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return t}):"undefined"!=typeof module&&module.exports?(module.exports=t.attach,module.exports.FastClick=t):window.FastClick=t}(),!function(t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(t):"undefined"!=typeof window?window.IconicJS=t():"undefined"!=typeof global?global.IconicJS=t():"undefined"!=typeof self&&(self.IconicJS=t())}(function(){var t;return function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return i(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)}),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var t=[],e=function(e,n){var r=this,i=function(t){t.target=t.srcElement,t.currentTarget=r,n.handleEvent?n.handleEvent(t):n.call(r,t)};if("DOMContentLoaded"==e){var o=function(t){"complete"==document.readyState&&i(t)};if(document.attachEvent("onreadystatechange",o),t.push({object:this,type:e,listener:n,wrapper:o}),"complete"==document.readyState){var a=new Event;a.srcElement=window,o(a)}}else this.attachEvent("on"+e,i),t.push({object:this,type:e,listener:n,wrapper:i})},n=function(e,n){for(var r=0;ro?r.width:r.height;var a;a=32>e?"iconic-sm":e>=32&&128>e?"iconic-md":"iconic-lg";var s=t.getAttribute("class"),u=n.test(s)?s.replace(n,a):s+" "+a;t.setAttribute("class",u)}},s=function(){var t=document.querySelectorAll(".injected-svg.iconic-fluid");Array.prototype.forEach.call(t,function(t){a(t)})};document.addEventListener("DOMContentLoaded",function(){o()}),window.addEventListener("resize",function(){s()}),e.exports={refresh:a,refreshAll:s}},{}],8:[function(e,n,r){!function(e,i){"use strict";function o(t){t=t.split(" ");for(var e={},n=t.length,r=[];n--;)e.hasOwnProperty(t[n])||(e[t[n]]=1,r.unshift(t[n]));return r.join(" ")}var a="file:"===e.location.protocol,s=i.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),u=Array.prototype.forEach||function(t,e){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)},c={},l=0,f=[],h=[],d={},p=function(t){return t.cloneNode(!0)},m=function(t,e){h[t]=h[t]||[],h[t].push(e)},v=function(t){for(var e=0,n=h[t].length;n>e;e++)!function(e){setTimeout(function(){h[t][e](p(c[t]))},0)}(e)},g=function(t,n){if(void 0!==c[t])c[t]instanceof SVGSVGElement?n(p(c[t])):m(t,n);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;c[t]={},m(t,n);var r=new XMLHttpRequest;r.onreadystatechange=function(){if(4===r.readyState){if(404===r.status||null===r.responseXML)return n("Unable to load SVG file: "+t),a&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===r.status||a&&0===r.status))return n("There was a problem injecting the SVG: "+r.status+" "+r.statusText),!1;if(r.responseXML instanceof Document)c[t]=r.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var i=new DOMParser;e=i.parseFromString(r.responseText,"text/xml")}catch(o){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;c[t]=e.documentElement}v(t)}},r.open("GET",t),r.overrideMimeType&&r.overrideMimeType("text/xml"),r.send()}},$=function(t,n,r,i){var a=t.getAttribute("data-src")||t.getAttribute("src");if(!/svg$/i.test(a))return void i("Attempted to inject a file with a non-svg extension: "+a);if(!s){var c=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(c?(t.setAttribute("src",c),i(null)):r?(t.setAttribute("src",r+"/"+a.split("/").pop().replace(".svg",".png")),i(null)):i("This browser does not support SVG and no PNG fallback was defined."))}-1===f.indexOf(t)&&(f.push(t),t.setAttribute("src",""),g(a,function(r){if("undefined"==typeof r||"string"==typeof r)return i(r),!1;var s=t.getAttribute("id");s&&r.setAttribute("id",s);var c=t.getAttribute("title");c&&r.setAttribute("title",c);var h=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",o(h));var p=t.getAttribute("style");p&&r.setAttribute("style",p);var m=[].filter.call(t.attributes,function(t){return/^data-\w[\w\-]*$/.test(t.name)});u.call(m,function(t){t.name&&t.value&&r.setAttribute(t.name,t.value)});for(var v,g=r.querySelectorAll("defs clipPath[id]"),$=0,y=g.length;y>$;$++){v=g[$].id+"-"+l;for(var b=r.querySelectorAll('[clip-path*="'+g[$].id+'"]'),w=0,_=b.length;_>w;w++)b[w].setAttribute("clip-path","url(#"+v+")");g[$].id=v}r.removeAttribute("xmlns:a");for(var x,C,E=r.querySelectorAll("script"),k=[],A=0,S=E.length;S>A;A++)C=E[A].getAttribute("type"),C&&"application/ecmascript"!==C&&"application/javascript"!==C||(x=E[A].innerText||E[A].textContent,k.push(x),r.removeChild(E[A]));if(k.length>0&&("always"===n||"once"===n&&!d[a])){for(var T=0,O=k.length;O>T;T++)new Function(k[T])(e);d[a]=!0}t.parentNode.replaceChild(r,t),delete f[f.indexOf(t)],t=null,l++,i(r)}))},y=function(t,e,n){e=e||{};var r=e.evalScripts||"always",i=e.pngFallback||!1,o=e.each;if(void 0!==t.length){var a=0;u.call(t,function(e){$(e,r,i,function(e){o&&"function"==typeof o&&o(e),n&&t.length===++a&&n(a)})})}else t?$(t,r,i,function(e){o&&"function"==typeof o&&o(e),n&&n(1),t=null}):n&&n(0)};"object"==typeof n&&"object"==typeof n.exports?n.exports=r=y:"function"==typeof t&&t.amd?t(function(){return y}):"object"==typeof e&&(e.SVGInjector=y)}(window,document)},{}]},{},[1])(1)}),function(){"use strict";function t(){function t(t,e){e?t.addClass(a):t.removeClass(a)}function e(t,e,r,u){function c(){h(t),p(),t[0].style.transitionDuration="",t.removeClass($?"":a),d(),m=!1}function l(t){h(t),angular.element(t).off(s.join(" ")),m=!1}function f(t){var e={el:t,animation:v},r=n.filter(function(e){return e.el===t});if(r.length>0){var i=r[0].el[0];r[0].animation.cancelAnimation(i)}n.push(e)}function h(t){var e;n.filter(function(n,r){n.el===t&&(e=r)});e>=0&&n.splice(e,1)}function d(){return t[0].offsetWidth}function p(){t[0].style.transitionDuration=0,t.removeClass(i.join(" ")+" "+o.join(" ")+" "+r+" "+u)}var m=!0,v=this;v.cancelAnimation=l;var g=e?r:u,$=e,y=$?i[0]:i[1],b=$?o[0]:o[1];f(t),p(),t.addClass(g),t.addClass(y),t.addClass(a),d(),t[0].style.transitionDuration="",t.addClass(b),t.one(s.join(" "),function(){c()}),setTimeout(function(){m&&c()},3e3)}var n=[],r={},i=["ng-enter","ng-leave"],o=["ng-enter-active","ng-leave-active"],a="is-active",s=["webkitAnimationEnd","mozAnimationEnd","MSAnimationEnd","oanimationend","animationend","webkitTransitionEnd","otransitionend","transitionend"];return r.animate=e,r.toggleAnimation=t,r}angular.module("foundation.core.animation",[]).service("FoundationAnimation",t)}(),function(){"use strict";function t(t){function e(t,e){return l[t]||(l[t]=[]),l[t].push(e),!0}function n(t,e){void 0!==l[t]&&delete l[t],"function"==typeof e&&e.call(this)}function r(t,e){l[t]||(l[t]=[]),l[t].forEach(function(t){t(e)})}function i(){return f}function o(t){return f=angular.extend(f,t)}function a(){var t="";do{t+="zf-uuid-";for(var e=0;15>e;e++)t+=Math.floor(16*Math.random()).toString(16)}while(!h.indexOf(t));return h.push(t),t}function s(e,n){t.toggleAnimate(e,n)}function u(t){var e=this;t=t||{};var n=document.querySelectorAll(".is-active[zf-closable]"),r=document.querySelectorAll("[zf-closable] > .is-active");n.length&&angular.forEach(n,function(n){t.exclude!==n.id&&e.publish(n.id,"close")}),r.length&&angular.forEach(r,function(n){var r=n.parentNode.id;t.exclude!==r&&e.publish(r,"close")})}function c(e,n,r,i){t.animate(e,n,r,i)}var l={},f={},h=[],d={};return d.subscribe=e,d.unsubscribe=n,d.publish=r,d.getSettings=i,d.modifySettings=o,d.generateUuid=a,d.toggleAnimate=s,d.closeActiveElements=u,d.animate=c,d}function e(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function n(){function t(t,e){var n=null;return function(){var r=this,i=arguments;null===n&&(n=setTimeout(function(){t.apply(r,i),n=null},e))}}var e={};return e.throttle=t,e}angular.module("foundation.core",["foundation.core.animation"]).service("FoundationApi",t).service("FoundationAdapter",e).factory("Utils",n),t.$inject=["FoundationAnimation"],e.$inject=["FoundationApi"]}(),function(){"use strict";function t(t,e){function n(n,r){function i(t,e,n,r,i){if(r.animation){if(!r.animation.leave&&!e.animation.leave)return;o(t,e,r)}}function o(t,e,n){p?(f(),r.addClass(n.animation.leave)):(l(),f(),r.removeClass(n.animation.leave))}function a(){d.leave&&r.removeClass(d.leave),l()}function s(){l(),e.includes(c())&&d.enter&&r.addClass(d.enter)}function u(t){t.targetScope===n&&d.enter&&r.removeClass(d.enter),p=!0}function c(){var t=r.data("$uiView"),e=t&&t.state&&t.state.self;return e&&angular.extend(d,e.animation),e}function l(){r.parent().removeClass("position-absolute"),h!==!0&&(r.parent()[0].style.height=null)}function f(){var t=parseInt(r.parent()[0].style.height),e=parseInt(window.getComputedStyle(r[0],null).getPropertyValue("height")),n=t>0?t:e>0?e:"";t>0&&(h=!0),r.parent()[0].style.height=n+"px",r.parent().addClass("position-absolute")}var h,d={},p=!1,m=[t.$on("$stateChangeStart",i),t.$on("$stateChangeError",a),n.$on("$stateChangeSuccess",s),n.$on("$viewContentAnimationEnded",u)],v=n.$on("$destroy",function(){angular.forEach(m,function(t){angular.isFunction(t)&&t()}),v()})}var r={restrict:"ECA",priority:-400,link:n};return r}angular.module("foundation.dynamicRouting.animations",["foundation.dynamicRouting"]).directive("uiView",t),t.$inject=["$rootScope","$state"]}(),function(){"use strict";function t(t){function e(t){var e={vars:{}};return t.data&&("object"==typeof t.data.vars&&(e.vars=t.data.vars),delete t.data.vars,angular.extend(e,t.data)),delete t.data,angular.extend(e.vars,t),e}function n(t,e){return{templateUrl:t,controller:r(e)}}function r(t){var e=t.controller||"DefaultController";return/\w\s+as\s+\w/.test(e)||(e+=" as PageCtrl"),e}function i(t){var e={};return t.animationIn&&(e.enter=t.animationIn),t.animationOut&&(e.leave=t.animationOut),e}var o={};this.registerDynamicRoutes=function(a){var s=a||foundationRoutes;angular.forEach(s,function(n){if(n.hasComposed)angular.isDefined(o[n.parent])||(o[n.parent]={children:{}}),n.controller&&(n.controller=r(n)),o[n.parent].children[n.name]=n;else if(n.composed)angular.isDefined(o[n.name])||(o[n.name]={children:{}}),n.controller&&(n.controller=r(n)),angular.extend(o[n.name],n);else{var a={url:n.url,templateUrl:n.path,"abstract":n["abstract"]||!1,parent:n.parent||"",controller:r(n),data:e(n),animation:i(n)};t.state(n.name,a)}}),angular.forEach(o,function(r){var o={url:r.url,parent:r.parent||"","abstract":r["abstract"]||!1,data:e(r),animation:i(r),views:{"":n(r.path,r)}};angular.forEach(r.children,function(t){o.views[t.name+"@"+r.name]=n(t.path,r)}),t.state(r.name,o)})},this.$get=angular.noop}function e(t,e,n){var r={};angular.forEach(e,function(t,e){r[e]=t}),t.params=r,t.current=n.current.name,n.current.views?(t.vars=n.current.data.vars,t.composed=n.current.data.vars.children):t.vars=n.current.data.vars}function n(t){t.registerDynamicRoutes(foundationRoutes)}function r(t,e,n){t.$state=e,t.$stateParams=n}angular.module("foundation.dynamicRouting",["ui.router"]).provider("$FoundationState",t).controller("DefaultController",e).config(n).run(r),t.$inject=["$stateProvider"],e.$inject=["$scope","$stateParams","$state"],n.$inject=["$FoundationStateProvider"],r.$inject=["$rootScope","$state","$stateParams"]}(),function(){"use strict";function t(t){t.init()}function e(t,e,n){function r(){var r,i;t.headerHelper(["foundation-mq"]),i=t.getStyle(".foundation-mq","font-family"),r=t.parseStyleToObject(i);for(var a in r)r[a]="only screen and (min-width: "+r[a].replace("rem","em")+")";e.modifySettings({mediaQueries:angular.extend(r,o)}),window.addEventListener("resize",n.throttle(function(){e.publish("resize","window resized")},50))}var i={},o={"default":"only screen",landscape:"only screen and (orientation: landscape)",portrait:"only screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx)"};return i.init=r,i}function n(){function t(t){for(var e=t.length,n=angular.element(document.querySelectorAll("head"));e--;)n.append('')}function e(t,e){var n=document.querySelectorAll(t)[0],r=window.getComputedStyle(n,null);return r.getPropertyValue("font-family")}function n(t){var e={};return"string"!=typeof t?e:(t=t.trim().slice(1,-1))?e=t.split("&").reduce(function(t,e){var n=e.replace(/\+/g," ").split("="),r=n[0],i=n[1];return r=decodeURIComponent(r),i=void 0===i?null:decodeURIComponent(i),t.hasOwnProperty(r)?Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i,t},{}):e}var r={};return r.headerHelper=t,r.getStyle=e,r.parseStyleToObject=n,r}function r(t){function e(){return t.getSettings().mediaQueries}function n(t){var e=t.length,n=i.getMediaQueries(),r=[];if(e>0)for(;e--;){var o,a=t[e].media;o=n[a]?matchMedia(n[a]):matchMedia(a),o.matches&&r.push({ind:e})}return r}function r(t){var e=[],n=[],r=t.children(),i=0;return angular.forEach(r,function(t){var r=angular.element(t);r.attr("src")&&r.attr("src").match(/.html$/)?e[i]={media:r.attr("media"),src:r.attr("src")}:(n[i]=r,e[i]={media:r.attr("media"),templ:i}),i++}),{scenarios:e,templates:n}}var i=[];return i.getMediaQueries=e,i.match=n,i.collectScenariosFromElement=r,i}angular.module("foundation.mediaquery",["foundation.core"]).run(t).factory("FoundationMQInit",e).factory("mqHelpers",n).service("FoundationMQ",r),t.$inject=["FoundationMQInit"],e.$inject=["mqHelpers","FoundationApi","Utils"],r.$inject=["FoundationApi"]}(),angular.module("markdown",[]).directive("markdown",function(){return{restrict:"A",link:function(t,e,n,r){e.html(marked(e.html()))}}}),function(){var t={};angular.forEach(["clipPath","colorProfile","src","cursor","fill","filter","marker","markerStart","markerMid","markerEnd","mask","stroke"],function(e){t[e]=["$rootScope","$location","$interpolate","$sniffer","urlResolve","computeSVGAttrValue","svgAttrExpressions",function(t,n,r,i,o,a,s){return{restrict:"A",link:function(r,o,u){function c(){var t=a(l);t&&u[e]!==t&&u.$set(e,t)}var l;s.SVG_ELEMENT.test(o[0]&&o[0].toString())&&n.$$html5&&i.history&&(l=u[e],u.$observe(e,c),t.$on("$locationChangeSuccess",c))}}}]}),angular.module("ngSVGAttributes",[]).factory("urlResolve",[function(){var t=document.createElement("a");return function(e){return t.setAttribute("href",e),t}}]).value("svgAttrExpressions",{FUNC_URI:/^url\((.*)\)$/,SVG_ELEMENT:/SVG[a-zA-Z]*Element/,HASH_PART:/#.*/}).factory("computeSVGAttrValue",["$location","$sniffer","svgAttrExpressions","urlResolve",function(t,e,n,r){return function(e){var i,o;return(i=n.FUNC_URI.exec(e))&&(o=0===i[1].indexOf("#")?t.absUrl().replace(n.HASH_PART,"")+i[1]:r(i[1])),o?"url("+o+")":null}}]).directive(t)}(),function(){"use strict";function t(t){var e=this,n=e.sections=t.sections=[],r=(e.multiOpen=t.multiOpen=t.multiOpen||!1,e.collapsible=t.collapsible=t.multiOpen||t.collapsible||!0),i=e.autoOpen=t.autoOpen=t.autoOpen||!0;e.select=function(t){n.forEach(function(n){e.multiOpen?n.scope===t&&(n.scope.active=!n.scope.active):n.scope===t?n.scope.active=r?!n.scope.active:!0:n.scope.active=!1})},e.addSection=function(t){n.push({scope:t}),1===n.length&&i===!0&&(n[0].active=!0,n[0].scope.active=!0)},e.closeAll=function(){n.forEach(function(t){t.scope.active=!1})}}function e(){function t(t,e,n,r){t.multiOpen=r.multiOpen="true"===t.multiOpen?!0:!1,t.collapsible=r.collapsible="true"===t.collapsible?!0:!1,t.autoOpen=r.autoOpen="true"===t.autoOpen?!0:!1}var e={restrict:"EA",transclude:"true",replace:!0,templateUrl:"components/accordion/accordion.html",controller:"ZfAccordionController",scope:{multiOpen:"@?",collapsible:"@?",autoOpen:"@?"},link:t};return e}function n(){function t(t,e,n,r,i){t.active=!1,r.addSection(t),t.activate=function(){r.select(t)}}var e={restrict:"EA",templateUrl:"components/accordion/accordion-item.html",transclude:!0,scope:{title:"@"},require:"^zfAccordion",replace:!0,controller:function(){},link:t};return e}angular.module("foundation.accordion",[]).controller("ZfAccordionController",t).directive("zfAccordion",e).directive("zfAccordionItem",n),t.$inject=["$scope"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t,e){function n(t){var e=t.target,n=!1;do if(e.classList&&e.classList.contains("action-sheet-container")){n=!0;break}while(e=e.parentNode);if(!n){if(t.target.attributes["zf-toggle"]||t.target.attributes["zf-hard-toggle"])return;r()}}function r(){a.hide(),s.hide(),a.$apply(),s.$apply()}function i(){a.toggle(),s.toggle(),a.$apply(),s.$apply()}var o=this,a=o.content=t.content,s=o.container=t.container;angular.element(document.body);o.registerContent=function(t){a=t,a.active=!1},o.registerContainer=function(t){s=t,s.active=!1},o.toggle=i,o.hide=r,o.registerListener=function(){document.body.addEventListener("click",n)},o.deregisterListener=function(){document.body.removeEventListener("click",n)}}function n(t){function e(){function e(t,e,n){n.$set("zf-closable","actionsheet")}function n(e,n,r,i){var o=r.id||t.generateUuid();r.$set("id",o),e.active=!1,t.subscribe(o,function(t){"toggle"===t&&i.toggle(),("hide"===t||"close"===t)&&i.hide()}),i.registerContainer(e),e.toggle=function(){e.active=!e.active},e.hide=function(){e.active=!1}}return{pre:e,post:n}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet.html",controller:"ZfActionSheetController",compile:e};return n}function r(t){function e(t,e,n,r){t.active=!1,t.position=t.position||"bottom",r.registerContent(t),t.toggle=function(){t.active=!t.active,t.active?r.registerListener():r.deregisterListener()},t.hide=function(){t.active=!1,r.deregisterListener()}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet-content.html",require:"^zfActionSheet",scope:{position:"@?"},link:e};return n}function i(t){function e(t,e,n,r){e.on("click",function(t){r.toggle(),t.preventDefault()})}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet-button.html",require:"^zfActionSheet",scope:{title:"@?"},link:e};return n}angular.module("foundation.actionsheet",["foundation.core"]).controller("ZfActionSheetController",e).directive("zfActionSheet",n).directive("zfAsContent",r).directive("zfAsButton",i).service("FoundationActionSheet",t),t.$inject=["FoundationApi"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e,n,r){var i="";if(r.zfClose)i=r.zfClose;else{for(var o=!1,a=n.parent();o===!1;)"BODY"==a[0].nodeName&&(o=""),"undefined"!=typeof a.attr("zf-closable")&&a.attr("zf-closable")!==!1&&(o=a),a=a.parent();i=o.attr("id")}n.on("click",function(e){t.publish(i,"close"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function e(t){function e(e,n,r){n.on("click",function(e){t.publish(r.zfOpen,"open"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function n(t){function e(e,n,r){n.on("click",function(e){t.publish(r.zfToggle,"toggle"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function r(t){function e(e,n,r){n.on("keyup",function(e){27===e.keyCode&&t.closeActiveElements(),e.preventDefault()})}var n={restrict:"A",link:e};return n}function i(t){function e(e,n,r){var i,o;switch(Hammer&&(o=new Hammer(n[0]),o.get("swipe").set({direction:Hammer.DIRECTION_ALL,threshold:5,velocity:.5})),r.zfSwipeClose){case"right":i="swiperight";break;case"left":i="swipeleft";break;case"up":i="swipeup";break;case"down":i="swipedown";break;default:i="swipe"}o.on(i,function(){t.publish(r.id,"close")})}var n={restrict:"A",link:e};return n}function o(t){function e(e,n,r){n.on("click",function(e){t.closeActiveElements({exclude:r.zfHardToggle}),t.publish(r.zfHardToggle,"toggle"),e.preventDefault()})}var n={restrict:"A",link:e};return n}angular.module("foundation.common",["foundation.core"]).directive("zfClose",t).directive("zfOpen",e).directive("zfToggle",n).directive("zfEscClose",r).directive("zfSwipeClose",i).directive("zfHardToggle",o),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"]}(),function(){"use strict";function t(){var t="assets/img/iconic/";this.setAssetPath=function(e){t=angular.isString(e)?e:t},this.$get=function(){function e(){return r}function n(){return t}var r=new IconicJS,i={getAccess:e,getAssetPath:n};return i}}function e(t,e,n){function r(){function r(e,n,r){if(a=e.iconDir?e.iconDir:t.getAssetPath(),"/"!==a.charAt(a.length-1)&&(a+="/"),e.dynSrc?r.$set("data-src",e.dynSrc):e.dynIcon?r.$set("data-src",a+e.dynIcon+".svg"):e.icon?r.$set("data-src",a+e.icon+".svg"):r.$set("data-src",r.src),!n.hasClass("iconic-sm")&&!n.hasClass("iconic-md")&&!n.hasClass("iconic-lg")){var i;switch(e.size){case"small":i="iconic-sm";break;case"medium":i="iconic-md";break;case"large":i="iconic-lg";break;default:i="iconic-fluid"}n.addClass(i)}o=n[0].outerHTML}function i(r,i,s){function u(t){l&&(l.empty(),l.append(angular.element(o)),l.attr("data-src",t),c(l[0]))}function c(t){f.inject(t,{each:function(t){var e=angular.element(t);l=n(e)(e.scope())}})}var l,f=t.getAccess();c(i[0]),e.subscribe("resize",function(){f.update(i[0])}),r.dynSrc&&r.$watch("dynSrc",function(t,e){t&&t!==e&&u(r.dynSrc)}),r.dynIcon&&r.$watch("dynIcon",function(t,e){t&&t!==e&&u(a+r.dynIcon+".svg")})}var o,a;return{pre:r,post:i}}var i={restrict:"A",template:"",transclude:!0,replace:!0,scope:{dynSrc:"=?",dynIcon:"=?",size:"@?",icon:"@",iconDir:"@?"},compile:r};return i}angular.module("foundation.iconic",[]).provider("Iconic",t).directive("zfIconic",e),e.$inject=["Iconic","FoundationApi","$compile"]}(),function(){"use strict";function t(t,e,n,r,i){function o(o,a,s,u,c){function l(t){return e.get(t,{cache:n})}function f(t){var e=i.collectScenariosFromElement(t);m=e.scenarios,v=e.templates}function h(t){return!p||p!==t}var d,p,m,v;i.getMediaQueries();r.subscribe("resize",function(e){c(function(e,n){m&&v||f(e);var r=i.match(m),o=0===r.length?null:m[r[0].ind];if(o&&h(o)){if(d&&(d.$destroy(),d=null),"undefined"!=typeof o.templ){d=n;var s=document.createElement("div");s.appendChild(v[o.templ][0]),a.html(s.innerHTML),t(a.contents())(d),p=o}else{var u=l(o.src);u.success(function(t){d=n,a.html(t)}).then(function(){t(a.contents())(d),p=o})}}})}),r.publish("resize","initial resize")}var a={restrict:"EA",transclude:"element",scope:{position:"@"},replace:!0,template:"
",link:o};return a}angular.module("foundation.interchange",["foundation.core","foundation.mediaquery"]).directive("zfInterchange",t),t.$inject=["$compile","$http","$templateCache","FoundationApi","FoundationMQ"]}(),function(){"use strict";function t(t,e){function n(e){t.publish(e,"show")}function r(e){t.publish(e,"hide")}function i(t){return new e(t)}var o={};return o.activate=n,o.deactivate=r,o.newModal=i,o}function e(t){function e(e,n,r){function i(t,e,n,r){n.$set("zf-closable",a)}function o(e,n,r){function i(){e.overlay||n.css("background","transparent"),t.animate(n,e.active,c,l),t.animate(a,e.active,s,u)}function o(){e.active&&e.show()}var a=angular.element(n.children()[0]);e.active=e.active||!1,e.overlay="false"===r.overlay?!1:!0,e.overlayClose="false"===r.overlayClose?!1:!0;var s=r.animationIn||"fadeIn",u=r.animationOut||"fadeOut",c="fadeIn",l="fadeOut";e.hideOverlay=function(){e.overlayClose&&e.hide()},e.hide=function(){e.active=!1,i()},e.show=function(){e.active=!0,i(),a.tabIndex=-1,a[0].focus()},e.toggle=function(){e.active=!e.active,i()},o(),t.subscribe(r.id,function(t){"show"===t||"open"===t?e.show():"close"===t||"hide"===t?e.hide():"toggle"===t&&e.toggle(),e.$root&&!e.$root.$$phase&&e.$apply()})}var a="modal";return{pre:i,post:o}}var n={restrict:"EA",templateUrl:"components/modal/modal.html",transclude:!0,scope:!0,replace:!0,compile:e};return n}function n(t,e,n,r,i,o,a){function s(s){function u(){if(C)throw"Error: Modal was destroyed. Delete the object and create a new ModalFactory instance."}function c(){u(),i(function(){h(!0),a.publish(_,"show")},0,!1)}function l(){u(),i(function(){h(!1),a.publish(_,"hide")},0,!1)}function f(){u(),i(function(){h(!0),a.publish(_,"toggle")},0,!1)}function h(t){o.when(g).then(function(){if(!x&&m.length>0){w.append(v);$.active=t,r(v)($),x=!0}})}function d(){if(!document.getElementById(_)){m=''+m+"",v=angular.element(m),$=n.$new();for(var t=0;t0;)t.notifications.pop()}}function n(t){function e(e,n,r,i){e.position=e.position?e.position.split(" ").join("-"):"top-right",t.subscribe(r.id,function(t){"clearall"===t?i.clearAll():(i.addNotification(t),e.$root.$$phase||e.$apply())})}var n={restrict:"EA",templateUrl:"components/notification/notification-set.html",controller:"ZfNotificationController",replace:!0,scope:{position:"@"},link:e};return n}function r(t){function e(){function e(t,e,n){n.$set("zf-closable","notification")}function n(e,n,r,i){e.active=!1;var o,a=r.animationIn||"fadeIn",s=r.animationOut||"fadeOut";setTimeout(function(){e.active=!0,t.animate(n,e.active,a,s)},50),e.hide=function(){e.active=!1,t.animate(n,e.active,a,s),setTimeout(function(){i.removeNotification(e.notifId)},50)},e.autoclose&&setTimeout(function(){e.active&&e.hide()},parseInt(e.autoclose)),Hammer&&(o=new Hammer(n[0]),o.get("swipe").set({direction:Hammer.DIRECTION_ALL,threshold:5,velocity:.5})),o.on("swipe",function(){e.active&&e.hide()})}return{pre:e,post:n}}var n={restrict:"EA",templateUrl:"components/notification/notification.html",replace:!0,transclude:!0,require:"^zfNotificationSet",controller:function(){},scope:{title:"=?",content:"=?",image:"=?",notifId:"=",color:"=?",autoclose:"=?"},compile:e};return n}function i(t){function e(){function e(t,e,n,i){n.$set("zf-closable",r)}function n(e,n,r,i){e.position=r.position?r.position.split(" ").join("-"):"top-right";var o=r.animationIn||"fadeIn",a=r.animationOut||"fadeOut";t.subscribe(r.id,function(r){"show"==r||"open"==r?(e.show(),e.autoclose&&setTimeout(function(){e.active&&e.hide()},parseInt(e.autoclose))):"close"==r||"hide"==r?e.hide():"toggle"==r&&(e.toggle(),e.autoclose&&setTimeout(function(){e.active&&e.toggle()},parseInt(e.autoclose))),t.animate(n,e.active,o,a),e.$apply()}),e.hide=function(){e.active=!1,t.animate(n,e.active,o,a)},e.show=function(){e.active=!0,t.animate(n,e.active,o,a)},e.toggle=function(){e.active=!e.active,t.animate(n,e.active,o,a)}}var r="notification";return{pre:e,post:n}}var n={restrict:"EA",templateUrl:"components/notification/notification-static.html",replace:!0,transclude:!0,scope:{title:"@?",content:"@?",image:"@?",color:"@?",autoclose:"@?"},compile:e};return n}function o(t){function e(e,n,r,i){n.on("click",function(n){t.publish(r.zfNotify,{title:e.title,content:e.content,color:e.color,image:e.image,autoclose:e.autoclose}),n.preventDefault()})}var n={restrict:"A",scope:{title:"@?",content:"@?",color:"@?",image:"@?",autoclose:"@?"},link:e};return n}function a(t,e,n,r,i,o){function a(t){function e(){if(y)throw"Error: Notification Set was destroyed. Delete the object and create a new NotificationFactory instance."}function a(t){e(),i(function(){o.publish(g,t)},0,!1)}function s(){e(),i(function(){o.publish(g,"clearall")},0,!1)}function u(t){if(!$&&f.length>0){v.append(h);d.active=t,r(h)(d),$=!0}}function c(){if(!document.getElementById(g)){f='',h=angular.element(f),d=n.$new();for(var e=0;e0&&(n.hide(),t.animate(r,n.active,o,a))})}var s="panel";return{pre:o,post:a}}var r={restrict:"EA",templateUrl:"components/panel/panel.html",transclude:!0,scope:{position:"@?"},replace:!0,compile:n};return r}angular.module("foundation.panel",["foundation.core"]).directive("zfPanel",e).service("FoundationPanel",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi","$window"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t){function e(){function e(t,e,n){n.$set("zf-closable","popup")}function n(e,n,r){function i(t){s||(e.target=e.target?document.getElementById(e.target):document.getElementById(t),u=new Tether({element:n[0],target:e.target,attachment:o,targetAttachment:a,enable:!1}),s=!0)}e.active=!1,e.target=e.target||!1;var o=e.pinTo||"top center",a=e.pinAt||"bottom center",s=!1,u={};t.subscribe(r.id,function(t){"show"===t[0]||"open"===t[0]?e.show(t[1]):"close"===t[0]||"hide"===t[0]?e.hide():"toggle"===t[0]&&e.toggle(t[1]),e.$apply()}),e.hide=function(){e.active=!1,i(),u.disable()},e.show=function(t){e.active=!0,i(t),u.enable()},e.toggle=function(t){e.active=!e.active,i(t),e.active?u.enable():u.disable()}}return{pre:e,post:n}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/popup/popup.html",scope:{pinTo:"@?",pinAt:"@?",target:"@?"},compile:e};return n}function n(t){function e(e,n,r){var i=r.zfPopupToggle,o=r.id||t.generateUuid();r.$set("id",o),n.on("click",function(e){t.publish(i,["toggle",o]),e.preventDefault()})}var n={restrict:"A",link:e};return n}angular.module("foundation.popup",["foundation.core"]).directive("zfPopup",e).directive("zfPopupToggle",n).service("FoundationPopup",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"],n.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}var n={};return n.activate=e,n}function e(t,e){var n=this,r=n.tabs=t.tabs=[],i="";n.select=function(t){r.forEach(function(n){n.active=!1,n.scope.active=!1,n.scope===t&&(e.publish(i,["activate",n]),n.active=!0,n.scope.active=!0)})},n.addTab=function(t){r.push({scope:t,active:!1,parentContent:n.id}),1===r.length&&(r[0].active=!0,t.active=!0)},n.getId=function(){return i},n.setId=function(t){i=t}}function n(t){function e(e,n,r,i){e.id=r.id||t.generateUuid(),e.showTabContent="true"!==e.displaced,r.$set("id",e.id),i.setId(e.id);var o=function(){t.publish(e.id+"-tabs",e.tabs)};t.subscribe(e.id+"-get-tabs",function(){o()})}var n={restrict:"EA",transclude:"true",replace:!0,templateUrl:"components/tabs/tabs.html",controller:"ZfTabsController",scope:{displaced:"@?"},link:e};return n}function r(t){function e(e,n,r,i){e.tabs=e.tabs||[];var o=e.target;t.subscribe(o,function(t){if("activate"===t[0]){t[1];e.tabs.forEach(function(t){t.scope.active=!1,t.active=!1,t.scope.id===o&&(t.scope.active=!0,t.active=!0)})}}),0===e.tabs.length&&(t.subscribe(o+"-tabs",function(t){e.tabs=t}),t.publish(o+"-get-tabs",""))}var n={restrict:"A",transclude:"true",replace:!0,scope:{tabs:"=?",target:"@"},templateUrl:"components/tabs/tab-content.html",link:e};return n}function i(t){function e(e,n,r,i,o){e.id=r.id||t.generateUuid(),e.active=!1,e.transcludeFn=o,i.addTab(e),t.subscribe(e.id,function(t){("show"===t||"open"===t||"activate"===t)&&e.makeActive()}),e.makeActive=function(){i.select(e)}}var n={restrict:"EA",templateUrl:"components/tabs/tab.html",transclude:!0,scope:{title:"@"},require:"^zfTabs",replace:!0,link:e};return n}function o(t){function e(e,n,r,i,o){var a=e.$eval(r.tab);a.scope.id;a.scope.transcludeFn(a.scope,function(t){n.append(t)}),t.subscribe(a.scope.id,function(n){t.publish(a.parentContent,["activate",a.scope.id]),e.$apply()})}var n={restrict:"EA",transclude:"true",link:e};return n}function a(t){function e(e,n,r,i){function o(){n.parent().children().removeClass("is-active"),n.addClass("is-active")}var a=r.zfTabHref;t.subscribe(a,function(t){("activate"===t||"show"===t||"open"===t)&&o()}),n.on("click",function(e){t.publish(a,"activate"),o(),e.preventDefault()})}var n={restrict:"A",replace:!1,link:e};return n}function s(t){function e(t,e,n,r,i){var o=e.children();angular.element(o[0]).addClass("is-active")}var n={restrict:"A",replace:!1,link:e};return n}function u(t){function e(e,n,r){function i(t){var e=n.children();angular.forEach(e,function(e){var n=angular.element(e);n.removeClass("is-active"),n.attr("id")===t&&n.addClass("is-active")})}var o=[],a=n.children();angular.forEach(a,function(e){if(e.id){var n=e.id;if(o.push(n),t.subscribe(n,function(t){("activate"===t||"show"===t||"open"===t)&&i(n)}),1===o.length){var r=angular.element(e);r.addClass("is-active")}}})}return{restrict:"A",link:e}}angular.module("foundation.tabs",["foundation.core"]).controller("ZfTabsController",e).directive("zfTabs",n).directive("zfTabContent",r).directive("zfTab",i).directive("zfTabIndividual",o).directive("zfTabHref",a).directive("zfTabCustom",s).directive("zfTabContentCustom",u).service("FoundationTabs",t),t.$inject=["FoundationApi"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"],a.$inject=["FoundationApi"],s.$inject=["FoundationApi"],u.$inject=["FoundationApi"]}(),function(){"use strict";angular.module("foundation",["foundation.core","foundation.mediaquery","foundation.accordion","foundation.actionsheet","foundation.common","foundation.iconic","foundation.interchange","foundation.modal","foundation.notification","foundation.offcanvas","foundation.panel","foundation.popup","foundation.tabs"])}(),function(t,e,n,r){"use strict";function i(t,e,n){return setTimeout(c(t,n),e)}function o(t,e,n){return Array.isArray(t)?(a(t,n[e],n),!0):!1}function a(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==r)for(i=0;i\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=t.console&&(t.console.warn||t.console.log);return o&&o.call(t.console,i,r),e.apply(this,arguments)}}function u(t,e,n){var r,i=e.prototype;r=t.prototype=Object.create(i),r.constructor=t,r._super=i,n&&st(r,n)}function c(t,e){return function(){return t.apply(e,arguments)}}function l(t,e){return typeof t==lt?t.apply(e?e[0]||r:r,e):t}function f(t,e){return t===r?e:t}function h(t,e,n){a(v(e),function(e){t.addEventListener(e,n,!1)})}function d(t,e,n){a(v(e),function(e){t.removeEventListener(e,n,!1)})}function p(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function m(t,e){return t.indexOf(e)>-1}function v(t){return t.trim().split(/\s+/g)}function g(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;rn[e]}):r.sort()),r}function b(t,e){for(var n,i,o=e[0].toUpperCase()+e.slice(1),a=0;a1&&!n.firstMultiple?n.firstMultiple=T(e):1===i&&(n.firstMultiple=!1);var o=n.firstInput,a=n.firstMultiple,s=a?a.center:o.center,u=e.center=O(r);e.timeStamp=dt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=D(s,u),e.distance=M(s,u),A(n,e),e.offsetDirection=z(e.deltaX,e.deltaY);var c=I(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=ht(c.x)>ht(c.y)?c.x:c.y,e.scale=a?N(a.pointers,r):1,e.rotation=a?j(a.pointers,r):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,S(n,e);var l=t.element;p(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function A(t,e){var n=e.center,r=t.offsetDelta||{},i=t.prevDelta||{},o=t.prevInput||{};(e.eventType===kt||o.eventType===St)&&(i=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},r=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=i.x+(n.x-r.x),e.deltaY=i.y+(n.y-r.y)}function S(t,e){var n,i,o,a,s=t.lastInterval||e,u=e.timeStamp-s.timeStamp;if(e.eventType!=Tt&&(u>Et||s.velocity===r)){var c=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,f=I(u,c,l);i=f.x,o=f.y,n=ht(f.x)>ht(f.y)?f.x:f.y,a=z(c,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,o=s.velocityY,a=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=o,e.direction=a}function T(t){for(var e=[],n=0;ni;)n+=t[i].clientX,r+=t[i].clientY,i++;return{x:ft(n/e),y:ft(r/e)}}function I(t,e,n){return{x:e/t||0,y:n/t||0}}function z(t,e){return t===e?Ot:ht(t)>=ht(e)?0>t?It:zt:0>e?Mt:Dt}function M(t,e,n){n||(n=Rt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function D(t,e,n){n||(n=Rt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return 180*Math.atan2(i,r)/Math.PI}function j(t,e){return D(e[1],e[0],Ft)+D(t[1],t[0],Ft)}function N(t,e){return M(e[0],e[1],Ft)/M(t[0],t[1],Ft)}function P(){this.evEl=Lt,this.evWin=Ut,this.allow=!0,this.pressed=!1,x.apply(this,arguments)}function R(){this.evEl=Ht,this.evWin=Wt,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function F(){this.evTarget=Yt,this.evWin=Zt,this.started=!1,x.apply(this,arguments)}function B(t,e){var n=$(t.touches),r=$(t.changedTouches);return e&(St|Tt)&&(n=y(n.concat(r),"identifier",!0)),[n,r]}function L(){this.evTarget=Kt,this.targetIds={},x.apply(this,arguments)}function U(t,e){var n=$(t.touches),r=this.targetIds;if(e&(kt|At)&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=$(t.changedTouches),s=[],u=this.target;if(o=n.filter(function(t){return p(t.target,u)}),e===kt)for(i=0;is&&(e.push(t),s=e.length-1):i&(St|Tt)&&(n=!0),0>s||(e[s]=t,this.callback(this.manager,i,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),n&&e.splice(s,1))}});var Xt={touchstart:kt,touchmove:At,touchend:St,touchcancel:Tt},Yt="touchstart",Zt="touchstart touchmove touchend touchcancel";u(F,x,{handler:function(t){var e=Xt[t.type];if(e===kt&&(this.started=!0),this.started){var n=B.call(this,t,e);e&(St|Tt)&&n[0].length-n[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:wt,srcEvent:t})}}});var Gt={touchstart:kt,touchmove:At,touchend:St,touchcancel:Tt},Kt="touchstart touchmove touchend touchcancel";u(L,x,{handler:function(t){var e=Gt[t.type],n=U.call(this,t,e);n&&this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:wt,srcEvent:t})}}),u(V,x,{handler:function(t,e,n){var r=n.pointerType==wt,i=n.pointerType==xt;if(r)this.mouse.allow=!1;else if(i&&!this.mouse.allow)return;e&(St|Tt)&&(this.mouse.allow=!0),this.callback(t,e,n)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Jt=b(ct.style,"touchAction"),Qt=Jt!==r,te="compute",ee="auto",ne="manipulation",re="none",ie="pan-x",oe="pan-y";q.prototype={set:function(t){t==te&&(t=this.compute()),Qt&&this.manager.element.style&&(this.manager.element.style[Jt]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return a(this.manager.recognizers,function(e){l(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),H(t.join(" "))},preventDefaults:function(t){if(!Qt){var e=t.srcEvent,n=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var r=this.actions,i=m(r,re),o=m(r,oe),a=m(r,ie);if(i){var s=1===t.pointers.length,u=t.distance<2,c=t.deltaTime<250;if(s&&u&&c)return}if(!a||!o)return i||o&&n&jt||a&&n&Nt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var ae=1,se=2,ue=4,ce=8,le=ce,fe=16,he=32;W.prototype={defaults:{},set:function(t){return st(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(o(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=Z(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return o(t,"dropRecognizeWith",this)?this:(t=Z(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(o(t,"requireFailure",this))return this;var e=this.requireFail;return t=Z(t,this),-1===g(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(o(t,"dropRequireFailure",this))return this;t=Z(t,this);var e=g(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(e,t)}var n=this,r=this.state;ce>r&&e(n.options.event+X(r)),e(n.options.event),t.additionalEvent&&e(t.additionalEvent),r>=ce&&e(n.options.event+X(r))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=he)},canEmit:function(){for(var t=0;to?It:zt,n=o!=this.pX,r=Math.abs(t.deltaX)):(i=0===a?Ot:0>a?Mt:Dt,n=a!=this.pY,r=Math.abs(t.deltaY))),t.direction=i,n&&r>e.threshold&&i&e.direction},attrTest:function(t){return G.prototype.attrTest.call(this,t)&&(this.state&se||!(this.state&se)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=Y(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),u(J,G,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[re]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&se)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),u(Q,W,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ee]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distancee.time;if(this._input=t,!r||!n||t.eventType&(St|Tt)&&!o)this.reset();else if(t.eventType&kt)this.reset(),this._timer=i(function(){this.state=le,this.tryEmit()},e.time,this);else if(t.eventType&St)return le;return he},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===le&&(t&&t.eventType&St?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=dt(),this.manager.emit(this.options.event,this._input)))}}),u(tt,G,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[re]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&se)}}),u(et,G,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:jt|Nt,pointers:1},getTouchAction:function(){return K.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(jt|Nt)?e=t.overallVelocity:n&jt?e=t.overallVelocityX:n&Nt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&ht(e)>this.options.velocity&&t.eventType&St},emit:function(t){var e=Y(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(nt,W,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ne]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance>2,s=(3&n)<<4|i>>4,u=(15&i)<<2|o>>6,c=63&o,isNaN(i)?u=c=64:isNaN(o)&&(c=64),l=l+r.charAt(a)+r.charAt(s)+r.charAt(u)+r.charAt(c);return l},n.decode=function(t,e){var n,i,o,a,s,u,c,l="",f=0;for(t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");f>4,i=(15&s)<<4|u>>2,o=(3&u)<<6|c,l+=String.fromCharCode(n),64!=u&&(l+=String.fromCharCode(i)),64!=c&&(l+=String.fromCharCode(o));return l}},{}],2:[function(t,e,n){"use strict";function r(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}r.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},e.exports=r},{}],3:[function(t,e,n){"use strict";n.STORE={magic:"\x00\x00",compress:function(t,e){return t},uncompress:function(t){return t},compressInputType:null,uncompressInputType:null},n.DEFLATE=t("./flate")},{"./flate":8}],4:[function(t,e,n){"use strict";var r=t("./utils"),i=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];e.exports=function(t,e){if("undefined"==typeof t||!t.length)return 0;var n="string"!==r.getTypeOf(t);"undefined"==typeof e&&(e=0);var o=0,a=0,s=0;e=-1^e;for(var u=0,c=t.length;c>u;u++)s=n?t[u]:t.charCodeAt(u),a=255&(e^s),o=i[a],e=e>>>8^o;return-1^e}},{"./utils":21}],5:[function(t,e,n){"use strict";function r(t){this.data=null,this.length=0,this.index=0}var i=t("./utils");r.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.lengtht)throw new Error("End of data reached (data length = "+this.length+", asked index = "+t+"). Corrupted zip ?")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,n=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)n=(n<<8)+this.byteAt(e);return this.index+=t,n},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date((t>>25&127)+1980,(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1)}},e.exports=r},{"./utils":21}],6:[function(t,e,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!1,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],7:[function(t,e,n){"use strict";var r=t("./utils");n.string2binary=function(t){return r.string2binary(t)},n.string2Uint8Array=function(t){return r.transformTo("uint8array",t)},n.uint8Array2String=function(t){return r.transformTo("string",t)},n.string2Blob=function(t){var e=r.transformTo("arraybuffer",t);return r.arrayBuffer2Blob(e)},n.arrayBuffer2Blob=function(t){return r.arrayBuffer2Blob(t)},n.transformTo=function(t,e){return r.transformTo(t,e)},n.getTypeOf=function(t){return r.getTypeOf(t)},n.checkSupport=function(t){return r.checkSupport(t)},n.MAX_VALUE_16BITS=r.MAX_VALUE_16BITS,n.MAX_VALUE_32BITS=r.MAX_VALUE_32BITS,n.pretty=function(t){return r.pretty(t)},n.findCompression=function(t){return r.findCompression(t)},n.isRegExp=function(t){return r.isRegExp(t)}},{"./utils":21}],8:[function(t,e,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=t("pako");n.uncompressInputType=r?"uint8array":"array",n.compressInputType=r?"uint8array":"array",n.magic="\b\x00",n.compress=function(t,e){return i.deflateRaw(t,{level:e.level||-1})},n.uncompress=function(t){return i.inflateRaw(t)}},{pako:24}],9:[function(t,e,n){"use strict";function r(t,e){return this instanceof r?(this.files={},this.comment=null,this.root="",t&&this.load(t,e),void(this.clone=function(){var t=new r;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t})):new r(t,e)}var i=t("./base64");r.prototype=t("./object"),r.prototype.load=t("./load"),r.support=t("./support"),r.defaults=t("./defaults"),r.utils=t("./deprecatedPublicUtils"),r.base64={encode:function(t){return i.encode(t)},decode:function(t){return i.decode(t)}},r.compressions=t("./compressions"),e.exports=r},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(t,e,n){"use strict";var r=t("./base64"),i=t("./zipEntries");e.exports=function(t,e){var n,o,a,s;for(e=e||{},e.base64&&(t=r.decode(t)),o=new i(t,e),n=o.files,a=0;an;n++)r+=String.fromCharCode(255&t),t>>>=8;return r},b=function(){var t,e,n={};for(t=0;t0?t.substring(0,e):""},C=function(t){return"/"!=t.slice(-1)&&(t+="/"),t},E=function(t,e){return e="undefined"!=typeof e?e:!1,t=C(t),this.files[t]||_.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]},k=function(t,e,n){var r,a=new l;return t._data instanceof l?(a.uncompressedSize=t._data.uncompressedSize,a.crc32=t._data.crc32,0===a.uncompressedSize||t.dir?(e=c.STORE,a.compressedContent="",a.crc32=0):t._data.compressionMethod===e.magic?a.compressedContent=t._data.getCompressedContent():(r=t._data.getContent(),a.compressedContent=e.compress(i.transformTo(e.compressInputType,r),n))):(r=v(t),(!r||0===r.length||t.dir)&&(e=c.STORE,r=""),a.uncompressedSize=r.length,a.crc32=o(r),a.compressedContent=e.compress(i.transformTo(e.compressInputType,r),n)),a.compressedSize=a.compressedContent.length,a.compressionMethod=e.magic,a},A=function(t,e){var n=t;return t||(n=e?16893:33204),(65535&n)<<16},S=function(t,e){return 63&(t||0)},T=function(t,e,n,r,s){var u,c,l,f,d=(n.compressedContent,i.transformTo("string",h.utf8encode(e.name))),p=e.comment||"",m=i.transformTo("string",h.utf8encode(p)),v=d.length!==e.name.length,g=m.length!==p.length,$=e.options,b="",w="",_="";l=e._initialMetadata.dir!==e.dir?e.dir:$.dir,f=e._initialMetadata.date!==e.date?e.date:$.date;var x=0,C=0;l&&(x|=16),"UNIX"===s?(C=798,x|=A(e.unixPermissions,l)):(C=20,x|=S(e.dosPermissions,l)),u=f.getHours(),u<<=6,u|=f.getMinutes(),u<<=5,u|=f.getSeconds()/2,c=f.getFullYear()-1980,c<<=4,c|=f.getMonth()+1,c<<=5,c|=f.getDate(),v&&(w=y(1,1)+y(o(d),4)+d,b+="up"+y(w.length,2)+w),g&&(_=y(1,1)+y(this.crc32(m),4)+m,b+="uc"+y(_.length,2)+_);var E="";E+="\n\x00",E+=v||g?"\x00\b":"\x00\x00",E+=n.compressionMethod,E+=y(u,2),E+=y(c,2),E+=y(n.crc32,4),E+=y(n.compressedSize,4),E+=y(n.uncompressedSize,4),E+=y(d.length,2),E+=y(b.length,2);var k=a.LOCAL_FILE_HEADER+E+d+b,T=a.CENTRAL_FILE_HEADER+y(C,2)+E+y(m.length,2)+"\x00\x00\x00\x00"+y(x,4)+y(r,4)+d+b+m;return{fileRecord:k,dirRecord:T,compressedObject:n}},O={load:function(t,e){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(t){var e,n,r,i,o=[];for(e in this.files)this.files.hasOwnProperty(e)&&(r=this.files[e],i=new $(r.name,r._data,b(r.options)),n=e.slice(this.root.length,e.length),e.slice(0,this.root.length)===this.root&&t(n,i)&&o.push(i));return o},file:function(t,e,n){if(1===arguments.length){if(i.isRegExp(t)){var r=t;return this.filter(function(t,e){return!e.dir&&r.test(t)})}return this.filter(function(e,n){return!n.dir&&e===t})[0]||null}return t=this.root+t,_.call(this,t,e,n),this},folder:function(t){if(!t)return this;if(i.isRegExp(t))return this.filter(function(e,n){return n.dir&&t.test(e)});var e=this.root+t,n=E.call(this,e),r=this.clone();return r.root=n.name,r},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!=t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var n=this.filter(function(e,n){return n.name.slice(0,t.length)===t}),r=0;r=0;--o)if(this.data[o]===e&&this.data[o+1]===n&&this.data[o+2]===r&&this.data[o+3]===i)return o;return-1},r.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./dataReader":5}],19:[function(t,e,n){"use strict";var r=t("./utils"),i=function(t){this.data=new Uint8Array(t),this.index=0};i.prototype={append:function(t){0!==t.length&&(t=r.transformTo("uint8array",t),this.data.set(t,this.index),this.index+=t.length)},finalize:function(){return this.data}},e.exports=i},{"./utils":21}],20:[function(t,e,n){"use strict";for(var r=t("./utils"),i=t("./support"),o=t("./nodeBuffer"),a=new Array(256),s=0;256>s;s++)a[s]=s>=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;a[254]=a[254]=1;var u=function(t){var e,n,r,o,a,s=t.length,u=0;for(o=0;s>o;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),u+=128>n?1:2048>n?2:65536>n?3:4;for(e=i.uint8array?new Uint8Array(u):new Array(u),a=0,o=0;u>a;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),128>n?e[a++]=n:2048>n?(e[a++]=192|n>>>6,e[a++]=128|63&n):65536>n?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},c=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&128===(192&t[n]);)n--;return 0>n?e:0===n?e:n+a[t[n]]>e?n:e},l=function(t){var e,n,i,o,s=t.length,u=new Array(2*s);for(n=0,e=0;s>e;)if(i=t[e++],128>i)u[n++]=i;else if(o=a[i],o>4)u[n++]=65533,e+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&s>e;)i=i<<6|63&t[e++],o--;o>1?u[n++]=65533:65536>i?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return u.length!==n&&(u.subarray?u=u.subarray(0,n):u.length=n),r.applyFromCharCode(u)};n.utf8encode=function(t){return i.nodebuffer?o(t,"utf-8"):u(t)},n.utf8decode=function(t){if(i.nodebuffer)return r.transformTo("nodebuffer",t).toString("utf-8");t=r.transformTo(i.uint8array?"uint8array":"array",t);for(var e=[],n=0,o=t.length,a=65536;o>n;){var s=c(t,Math.min(n+a,o));i.uint8array?e.push(l(t.subarray(n,s))):e.push(l(t.slice(n,s))),n=s}return e.join("")}},{"./nodeBuffer":11,"./support":17,"./utils":21}],21:[function(t,e,n){"use strict";function r(t){return t}function i(t,e){for(var n=0;na&&e>1;)try{"array"===o||"nodebuffer"===o?r.push(String.fromCharCode.apply(null,t.slice(a,Math.min(a+e,i)))):r.push(String.fromCharCode.apply(null,t.subarray(a,Math.min(a+e,i)))),a+=e}catch(u){e=Math.floor(e/2)}return r.join("")}function a(t,e){for(var n=0;ne?"0":"")+e.toString(16).toUpperCase();return r},n.findCompression=function(t){for(var e in u)if(u.hasOwnProperty(e)&&u[e].magic===t)return u[e];return null},n.isRegExp=function(t){return"[object RegExp]"===Object.prototype.toString.call(t)}},{"./compressions":3,"./nodeBuffer":11,"./support":17}],22:[function(t,e,n){"use strict";function r(t,e){this.files=[],this.loadOptions=e,t&&this.load(t)}var i=t("./stringReader"),o=t("./nodeBufferReader"),a=t("./uint8ArrayReader"),s=t("./utils"),u=t("./signature"),c=t("./zipEntry"),l=t("./support"),f=t("./object");r.prototype={checkSignature:function(t){var e=this.reader.readString(4);if(e!==t)throw new Error("Corrupted zip or bug : unexpected signature ("+s.pretty(e)+", expected "+s.pretty(t)+")")},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2),this.zipComment=this.reader.readString(this.zipCommentLength),this.zipComment=f.utf8decode(this.zipComment)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.versionMadeBy=this.reader.readString(2),this.versionNeeded=this.reader.readInt(2),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,n,r=this.zip64EndOfCentralSize-44,i=0;r>i;)t=this.reader.readInt(2),e=this.reader.readInt(4),n=this.reader.readString(e),this.zip64ExtensibleData[t]={id:t,length:e,value:n}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t>8;this.dir=16&this.externalFileAttributes?!0:!1,t===u&&(this.dosPermissions=63&this.externalFileAttributes),t===c&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileName.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=new i(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,n,r,i=t.index;for(this.extraFields=this.extraFields||{};t.index0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=a.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==d)throw new Error(c[n]);e.header&&a.deflateSetHeader(this.strm,e.header)};$.prototype.push=function(t,e){var n,r,i=this.strm,o=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:e===!0?h:f,"string"==typeof t?i.input=u.string2buf(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new s.Buf8(o),i.next_out=0,i.avail_out=o),n=a.deflate(i,r),n!==p&&n!==d)return this.onEnd(n),this.ended=!0,!1;(0===i.avail_out||0===i.avail_in&&r===h)&&("string"===this.options.to?this.onData(u.buf2binstring(s.shrinkBuf(i.output,i.next_out))):this.onData(s.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&n!==p);return r===h?(n=a.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===d):!0},$.prototype.onData=function(t){this.chunks.push(t)},$.prototype.onEnd=function(t){t===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Deflate=$,n.deflate=r,n.deflateRaw=i,n.gzip=o},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(t,e,n){"use strict";function r(t,e){var n=new h(e);if(n.push(t,!0),n.err)throw n.msg;return n.result}function i(t,e){return e=e||{},e.raw=!0,r(t,e)}var o=t("./zlib/inflate.js"),a=t("./utils/common"),s=t("./utils/strings"),u=t("./zlib/constants"),c=t("./zlib/messages"),l=t("./zlib/zstream"),f=t("./zlib/gzheader"),h=function(t){this.options=a.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=o.inflateInit2(this.strm,e.windowBits);if(n!==u.Z_OK)throw new Error(c[n]);this.header=new f,o.inflateGetHeader(this.strm,this.header)};h.prototype.push=function(t,e){var n,r,i,c,l,f=this.strm,h=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:e===!0?u.Z_FINISH:u.Z_NO_FLUSH,"string"==typeof t?f.input=s.binstring2buf(t):f.input=t,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new a.Buf8(h),f.next_out=0,f.avail_out=h),n=o.inflate(f,u.Z_NO_FLUSH),n!==u.Z_STREAM_END&&n!==u.Z_OK)return this.onEnd(n),this.ended=!0,!1;f.next_out&&(0===f.avail_out||n===u.Z_STREAM_END||0===f.avail_in&&r===u.Z_FINISH)&&("string"===this.options.to?(i=s.utf8border(f.output,f.next_out),c=f.next_out-i,l=s.buf2string(f.output,i),f.next_out=c,f.avail_out=h-c,c&&a.arraySet(f.output,f.output,i,c,0),this.onData(l)):this.onData(a.shrinkBuf(f.output,f.next_out)))}while(f.avail_in>0&&n!==u.Z_STREAM_END);return n===u.Z_STREAM_END&&(r=u.Z_FINISH),r===u.Z_FINISH?(n=o.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===u.Z_OK):!0},h.prototype.onData=function(t){this.chunks.push(t)},h.prototype.onEnd=function(t){t===u.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Inflate=h,n.inflate=r,n.inflateRaw=i,n.ungzip=r},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(t,e,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var n=e.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}}return t},n.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var i={arraySet:function(t,e,n,r,i){if(e.subarray&&t.subarray)return void t.set(e.subarray(n,n+r),i);for(var o=0;r>o;o++)t[i+o]=e[n+o]},flattenChunks:function(t){var e,n,r,i,o,a;for(r=0,e=0,n=t.length;n>e;e++)r+=t[e].length;for(a=new Uint8Array(r),i=0,e=0,n=t.length;n>e;e++)o=t[e],a.set(o,i),i+=o.length;return a}},o={arraySet:function(t,e,n,r,i){for(var o=0;r>o;o++)t[i+o]=e[n+o]},flattenChunks:function(t){return[].concat.apply([],t)}};n.setTyped=function(t){t?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,i)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,o))},n.setTyped(r)},{}],28:[function(t,e,n){"use strict";function r(t,e){if(65537>e&&(t.subarray&&a||!t.subarray&&o))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",r=0;e>r;r++)n+=String.fromCharCode(t[r]);return n}var i=t("./common"),o=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(s){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(s){a=!1}for(var u=new i.Buf8(256),c=0;256>c;c++)u[c]=c>=252?6:c>=248?5:c>=240?4:c>=224?3:c>=192?2:1;u[254]=u[254]=1,n.string2buf=function(t){var e,n,r,o,a,s=t.length,u=0;for(o=0;s>o;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),u+=128>n?1:2048>n?2:65536>n?3:4;for(e=new i.Buf8(u),a=0,o=0;u>a;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),128>n?e[a++]=n:2048>n?(e[a++]=192|n>>>6,e[a++]=128|63&n):65536>n?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},n.buf2binstring=function(t){return r(t,t.length)},n.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;r>n;n++)e[n]=t.charCodeAt(n);return e},n.buf2string=function(t,e){var n,i,o,a,s=e||t.length,c=new Array(2*s);for(i=0,n=0;s>n;)if(o=t[n++],128>o)c[i++]=o;else if(a=u[o],a>4)c[i++]=65533,n+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&s>n;)o=o<<6|63&t[n++],a--;a>1?c[i++]=65533:65536>o?c[i++]=o:(o-=65536,c[i++]=55296|o>>10&1023,c[i++]=56320|1023&o)}return r(c,i)},n.utf8border=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&128===(192&t[n]);)n--;return 0>n?e:0===n?e:n+u[t[n]]>e?n:e}},{"./common":27}],29:[function(t,e,n){"use strict";function r(t,e,n,r){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==n;){a=n>2e3?2e3:n,n-=a;do i=i+e[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0}e.exports=r},{}],30:[function(t,e,n){e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(t,e,n){"use strict";function r(){for(var t,e=[],n=0;256>n;n++){t=n;for(var r=0;8>r;r++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}function i(t,e,n,r){var i=o,a=r+n;t=-1^t;for(var s=r;a>s;s++)t=t>>>8^i[255&(t^e[s])];return-1^t}var o=r();e.exports=i},{}],32:[function(t,e,n){"use strict";function r(t,e){return t.msg=z[e],e}function i(t){return(t<<1)-(t>4?9:0)}function o(t){for(var e=t.length;--e>=0;)t[e]=0}function a(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(S.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function s(t,e){T._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,a(t.strm)}function u(t,e){t.pending_buf[t.pending++]=e}function c(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function l(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),0===i?0:(t.avail_in-=i,S.arraySet(e,t.input,t.next_in,i,n),1===t.state.wrap?t.adler=O(t.adler,e,i,n):2===t.state.wrap&&(t.adler=I(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function f(t,e){var n,r,i=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-ct?t.strstart-(t.w_size-ct):0,c=t.window,l=t.w_mask,f=t.prev,h=t.strstart+ut,d=c[o+a-1],p=c[o+a];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do if(n=e,c[n+a]===p&&c[n+a-1]===d&&c[n]===c[o]&&c[++n]===c[o+1]){o+=2,n++;do;while(c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&h>o);if(r=ut-(h-o),o=h-ut,r>a){if(t.match_start=e,a=r,r>=s)break;d=c[o+a-1],p=c[o+a]}}while((e=f[e&l])>u&&0!==--i);return a<=t.lookahead?a:t.lookahead}function h(t){var e,n,r,i,o,a=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=a+(a-ct)){S.arraySet(t.window,t.window,a,a,0),t.match_start-=a,t.strstart-=a,t.block_start-=a,n=t.hash_size,e=n;do r=t.head[--e],t.head[e]=r>=a?r-a:0;while(--n);n=a,e=n;do r=t.prev[--e],t.prev[e]=r>=a?r-a:0;while(--n);i+=a}if(0===t.strm.avail_in)break;if(n=l(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=n,t.lookahead+t.insert>=st)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(h(t),0===t.lookahead&&e===M)return $t;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,s(t,!1),0===t.strm.avail_out))return $t;if(t.strstart-t.block_start>=t.w_size-ct&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.strstart>t.block_start&&(s(t,!1),0===t.strm.avail_out)?$t:$t}function p(t,e){for(var n,r;;){if(t.lookahead=st&&(t.ins_h=(t.ins_h<=st)if(r=T._tr_tally(t,t.strstart-t.match_start,t.match_length-st),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=st){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<=st&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=st-1)),t.prev_length>=st&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-st,r=T._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-st),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=(t.ins_h<=st&&t.strstart>0&&(i=t.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=t.strstart+ut;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&o>i);t.match_length=ut-(o-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=st?(n=T._tr_tally(t,1,t.match_length-st),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function g(t,e){for(var n;;){if(0===t.lookahead&&(h(t),0===t.lookahead)){if(e===M)return $t;break}if(t.match_length=0,n=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function $(t){t.window_size=2*t.w_size,o(t.head),t.max_lazy_match=A[t.level].max_lazy,t.good_match=A[t.level].good_length,t.nice_match=A[t.level].nice_length,t.max_chain_length=A[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=st-1,t.match_available=0,t.ins_h=0}function y(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=G,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new S.Buf16(2*ot),this.dyn_dtree=new S.Buf16(2*(2*rt+1)),this.bl_tree=new S.Buf16(2*(2*it+1)),o(this.dyn_ltree),o(this.dyn_dtree),o(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new S.Buf16(at+1),this.heap=new S.Buf16(2*nt+1),o(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new S.Buf16(2*nt+1),o(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function b(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=Z,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?ft:vt,t.adler=2===e.wrap?0:1,e.last_flush=M,T._tr_init(e),R):r(t,B)}function w(t){var e=b(t);return e===R&&$(t.state),e}function _(t,e){return t&&t.state?2!==t.state.wrap?B:(t.state.gzhead=e,R):B}function x(t,e,n,i,o,a){if(!t)return B;var s=1;if(e===V&&(e=6),0>i?(s=0,i=-i):i>15&&(s=2,i-=16),1>o||o>K||n!==G||8>i||i>15||0>e||e>9||0>a||a>X)return r(t,B);8===i&&(i=9);var u=new y;return t.state=u,u.strm=t,u.wrap=s,u.gzhead=null,u.w_bits=i,u.w_size=1<>1,u.l_buf=3*u.lit_bufsize,u.level=e,u.strategy=a,u.method=n,w(t)}function C(t,e){return x(t,e,G,J,Q,Y)}function E(t,e){var n,s,l,f;if(!t||!t.state||e>P||0>e)return t?r(t,B):B;if(s=t.state,!t.output||!t.input&&0!==t.avail_in||s.status===gt&&e!==N)return r(t,0===t.avail_out?U:B);if(s.strm=t,n=s.last_flush,s.last_flush=e,s.status===ft)if(2===s.wrap)t.adler=0,u(s,31),u(s,139),u(s,8),s.gzhead?(u(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),u(s,255&s.gzhead.time),u(s,s.gzhead.time>>8&255),u(s,s.gzhead.time>>16&255),u(s,s.gzhead.time>>24&255),u(s,9===s.level?2:s.strategy>=H||s.level<2?4:0),u(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(u(s,255&s.gzhead.extra.length),u(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(t.adler=I(t.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=ht):(u(s,0),u(s,0),u(s,0),u(s,0),u(s,0),u(s,9===s.level?2:s.strategy>=H||s.level<2?4:0),u(s,_t),s.status=vt);else{var h=G+(s.w_bits-8<<4)<<8,d=-1;d=s.strategy>=H||s.level<2?0:s.level<6?1:6===s.level?2:3,h|=d<<6,0!==s.strstart&&(h|=lt),h+=31-h%31,s.status=vt,c(s,h),0!==s.strstart&&(c(s,t.adler>>>16),c(s,65535&t.adler)),t.adler=1}if(s.status===ht)if(s.gzhead.extra){for(l=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending!==s.pending_buf_size));)u(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=dt)}else s.status=dt;if(s.status===dt)if(s.gzhead.name){l=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending===s.pending_buf_size)){f=1;break}f=s.gzindexl&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),0===f&&(s.gzindex=0,s.status=pt)}else s.status=pt;if(s.status===pt)if(s.gzhead.comment){l=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending===s.pending_buf_size)){f=1;break}f=s.gzindexl&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),0===f&&(s.status=mt)}else s.status=mt;if(s.status===mt&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&a(t),s.pending+2<=s.pending_buf_size&&(u(s,255&t.adler),u(s,t.adler>>8&255),t.adler=0,s.status=vt)):s.status=vt),0!==s.pending){if(a(t),0===t.avail_out)return s.last_flush=-1,R}else if(0===t.avail_in&&i(e)<=i(n)&&e!==N)return r(t,U);if(s.status===gt&&0!==t.avail_in)return r(t,U);if(0!==t.avail_in||0!==s.lookahead||e!==M&&s.status!==gt){var p=s.strategy===H?g(s,e):s.strategy===W?v(s,e):A[s.level].func(s,e);if((p===bt||p===wt)&&(s.status=gt),p===$t||p===bt)return 0===t.avail_out&&(s.last_flush=-1),R;if(p===yt&&(e===D?T._tr_align(s):e!==P&&(T._tr_stored_block(s,0,0,!1),e===j&&(o(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),a(t),0===t.avail_out))return s.last_flush=-1,R}return e!==N?R:s.wrap<=0?F:(2===s.wrap?(u(s,255&t.adler),u(s,t.adler>>8&255),u(s,t.adler>>16&255),u(s,t.adler>>24&255),u(s,255&t.total_in),u(s,t.total_in>>8&255),u(s,t.total_in>>16&255),u(s,t.total_in>>24&255)):(c(s,t.adler>>>16),c(s,65535&t.adler)),a(t),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?R:F)}function k(t){var e;return t&&t.state?(e=t.state.status,e!==ft&&e!==ht&&e!==dt&&e!==pt&&e!==mt&&e!==vt&&e!==gt?r(t,B):(t.state=null,e===vt?r(t,L):R)):B}var A,S=t("../utils/common"),T=t("./trees"),O=t("./adler32"),I=t("./crc32"),z=t("./messages"),M=0,D=1,j=3,N=4,P=5,R=0,F=1,B=-2,L=-3,U=-5,V=-1,q=1,H=2,W=3,X=4,Y=0,Z=2,G=8,K=9,J=15,Q=8,tt=29,et=256,nt=et+1+tt,rt=30,it=19,ot=2*nt+1,at=15,st=3,ut=258,ct=ut+st+1,lt=32,ft=42,ht=69,dt=73,pt=91,mt=103,vt=113,gt=666,$t=1,yt=2,bt=3,wt=4,_t=3,xt=function(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i};A=[new xt(0,0,0,0,d),new xt(4,4,8,4,p),new xt(4,5,16,8,p),new xt(4,6,32,32,p),new xt(4,4,16,16,m),new xt(8,16,32,32,m),new xt(8,16,128,128,m),new xt(8,32,128,256,m),new xt(32,128,258,1024,m),new xt(32,258,258,4096,m)],n.deflateInit=C,n.deflateInit2=x,n.deflateReset=w,n.deflateResetKeep=b,n.deflateSetHeader=_,n.deflate=E,n.deflateEnd=k,n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(t,e,n){"use strict";function r(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}e.exports=r},{}],34:[function(t,e,n){"use strict";var r=30,i=12;e.exports=function(t,e){var n,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S;n=t.state,o=t.next_in,A=t.input,a=o+(t.avail_in-5),s=t.next_out,S=t.output,u=s-(e-t.avail_out),c=s+(t.avail_out-257),l=n.dmax,f=n.wsize,h=n.whave,d=n.wnext,p=n.window,m=n.hold,v=n.bits,g=n.lencode,$=n.distcode,y=(1<v&&(m+=A[o++]<>>24,m>>>=_,v-=_,_=w>>>16&255,0===_)S[s++]=65535&w;else{if(!(16&_)){if(0===(64&_)){w=g[(65535&w)+(m&(1<<_)-1)];continue e}if(32&_){n.mode=i;break t}t.msg="invalid literal/length code",n.mode=r;break t}x=65535&w,_&=15,_&&(_>v&&(m+=A[o++]<>>=_,v-=_),15>v&&(m+=A[o++]<>>24,m>>>=_,v-=_,_=w>>>16&255,!(16&_)){if(0===(64&_)){w=$[(65535&w)+(m&(1<<_)-1)];continue n}t.msg="invalid distance code",n.mode=r;break t}if(C=65535&w,_&=15,_>v&&(m+=A[o++]<v&&(m+=A[o++]<l){t.msg="invalid distance too far back",n.mode=r;break t}if(m>>>=_,v-=_,_=s-u,C>_){if(_=C-_,_>h&&n.sane){t.msg="invalid distance too far back",n.mode=r;break t}if(E=0,k=p,0===d){if(E+=f-_,x>_){x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}}else if(_>d){if(E+=f+d-_,_-=d,x>_){x-=_;do S[s++]=p[E++];while(--_);if(E=0,x>d){_=d,x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}}}else if(E+=d-_,x>_){x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}for(;x>2;)S[s++]=k[E++],S[s++]=k[E++],S[s++]=k[E++],x-=3;x&&(S[s++]=k[E++],x>1&&(S[s++]=k[E++]))}else{E=s-C;do S[s++]=S[E++],S[s++]=S[E++],S[s++]=S[E++],x-=3;while(x>2);x&&(S[s++]=S[E++],x>1&&(S[s++]=S[E++]))}break}}break}}while(a>o&&c>s);x=v>>3,o-=x,v-=x<<3,m&=(1<o?5+(a-o):5-(o-a),t.avail_out=c>s?257+(c-s):257-(s-c),n.hold=m,n.bits=v}},{}],35:[function(t,e,n){"use strict";function r(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function i(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new g.Buf16(320),this.work=new g.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function o(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=N,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new g.Buf32(pt),e.distcode=e.distdyn=new g.Buf32(mt),e.sane=1,e.back=-1,S):I}function a(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,o(t)):I}function s(t,e){var n,r;return t&&t.state?(r=t.state,0>e?(n=0,e=-e):(n=(e>>4)+1,48>e&&(e&=15)),e&&(8>e||e>15)?I:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,a(t))):I}function u(t,e){var n,r;return t?(r=new i,t.state=r,r.window=null,n=s(t,e),n!==S&&(t.state=null),n):I}function c(t){return u(t,gt)}function l(t){if($t){var e;for(m=new g.Buf32(512),v=new g.Buf32(32),e=0;144>e;)t.lens[e++]=8;for(;256>e;)t.lens[e++]=9;for(;280>e;)t.lens[e++]=7;for(;288>e;)t.lens[e++]=8;for(w(x,t.lens,0,288,m,0,t.work,{bits:9}),e=0;32>e;)t.lens[e++]=5;w(C,t.lens,0,32,v,0,t.work,{bits:5}),$t=!1}t.lencode=m,t.lenbits=9,t.distcode=v,t.distbits=5}function f(t,e,n,r){var i,o=t.state;return null===o.window&&(o.wsize=1<=o.wsize?(g.arraySet(o.window,e,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),g.arraySet(o.window,e,n-r,i,o.wnext),r-=i,r?(g.arraySet(o.window,e,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whaved;){if(0===u)break t;u--,h+=i[a++]<>>8&255,n.check=y(n.check,At,2,0),h=0,d=0,n.mode=P;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",n.mode=ft;break}if((15&h)!==j){t.msg="unknown compression method",n.mode=ft;break}if(h>>>=4,d-=4,_t=(15&h)+8,0===n.wbits)n.wbits=_t;else if(_t>n.wbits){t.msg="invalid window size",n.mode=ft;break}n.dmax=1<<_t,t.adler=n.check=1,n.mode=512&h?H:X,h=0,d=0;break;case P:for(;16>d;){if(0===u)break t;u--,h+=i[a++]<>8&1),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0,n.mode=R;case R:for(;32>d;){if(0===u)break t;u--,h+=i[a++]<>>8&255,At[2]=h>>>16&255,At[3]=h>>>24&255,n.check=y(n.check,At,4,0)),h=0,d=0,n.mode=F;case F:for(;16>d;){if(0===u)break t;u--,h+=i[a++]<>8),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0,n.mode=B;case B:if(1024&n.flags){for(;16>d;){if(0===u)break t;u--,h+=i[a++]<>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0}else n.head&&(n.head.extra=null);n.mode=L;case L:if(1024&n.flags&&(v=n.length,v>u&&(v=u),v&&(n.head&&(_t=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),g.arraySet(n.head.extra,i,a,v,_t)),512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,n.length-=v),n.length))break t;n.length=0,n.mode=U;case U:if(2048&n.flags){if(0===u)break t;v=0;do _t=i[a+v++],n.head&&_t&&n.length<65536&&(n.head.name+=String.fromCharCode(_t));while(_t&&u>v);if(512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,_t)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=V;case V:if(4096&n.flags){if(0===u)break t;v=0;do _t=i[a+v++],n.head&&_t&&n.length<65536&&(n.head.comment+=String.fromCharCode(_t));while(_t&&u>v);if(512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,_t)break t}else n.head&&(n.head.comment=null);n.mode=q;case q:if(512&n.flags){for(;16>d;){if(0===u)break t;u--,h+=i[a++]<>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=X;break;case H:for(;32>d;){if(0===u)break t;u--,h+=i[a++]<>>=7&d,d-=7&d,n.mode=ut;break}for(;3>d;){if(0===u)break t;u--,h+=i[a++]<>>=1,d-=1,3&h){case 0:n.mode=Z;break;case 1:if(l(n),n.mode=et,e===A){h>>>=2,d-=2;break t}break;case 2:n.mode=J;break;case 3:t.msg="invalid block type",n.mode=ft}h>>>=2,d-=2;break;case Z:for(h>>>=7&d,d-=7&d;32>d;){if(0===u)break t;u--,h+=i[a++]<>>16^65535)){t.msg="invalid stored block lengths",n.mode=ft;break}if(n.length=65535&h,h=0,d=0,n.mode=G,e===A)break t;case G:n.mode=K;case K:if(v=n.length){if(v>u&&(v=u),v>c&&(v=c),0===v)break t;g.arraySet(o,i,a,v,s),u-=v,a+=v,c-=v,s+=v,n.length-=v;break}n.mode=X;break;case J:for(;14>d;){if(0===u)break t;u--,h+=i[a++]<>>=5,d-=5,n.ndist=(31&h)+1,h>>>=5,d-=5,n.ncode=(15&h)+4,h>>>=4,d-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=ft;break}n.have=0,n.mode=Q;case Q:for(;n.haved;){if(0===u)break t;u--,h+=i[a++]<>>=3,d-=3}for(;n.have<19;)n.lens[St[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,Ct={bits:n.lenbits},xt=w(_,n.lens,0,19,n.lencode,0,n.work,Ct),n.lenbits=Ct.bits,xt){t.msg="invalid code lengths set",n.mode=ft;break}n.have=0,n.mode=tt;case tt:for(;n.have>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<$t)h>>>=vt,d-=vt,n.lens[n.have++]=$t;else{if(16===$t){for(Et=vt+2;Et>d;){if(0===u)break t;u--,h+=i[a++]<>>=vt,d-=vt,0===n.have){t.msg="invalid bit length repeat",n.mode=ft;break}_t=n.lens[n.have-1],v=3+(3&h),h>>>=2,d-=2}else if(17===$t){for(Et=vt+3;Et>d;){if(0===u)break t;u--,h+=i[a++]<>>=vt,d-=vt,_t=0,v=3+(7&h),h>>>=3,d-=3}else{for(Et=vt+7;Et>d;){if(0===u)break t;u--,h+=i[a++]<>>=vt,d-=vt,_t=0,v=11+(127&h),h>>>=7,d-=7}if(n.have+v>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=ft;break}for(;v--;)n.lens[n.have++]=_t}}if(n.mode===ft)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=ft;break}if(n.lenbits=9,Ct={bits:n.lenbits},xt=w(x,n.lens,0,n.nlen,n.lencode,0,n.work,Ct),n.lenbits=Ct.bits,xt){t.msg="invalid literal/lengths set",n.mode=ft;break}if(n.distbits=6,n.distcode=n.distdyn,Ct={bits:n.distbits},xt=w(C,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,Ct),n.distbits=Ct.bits,xt){t.msg="invalid distances set",n.mode=ft;break}if(n.mode=et,e===A)break t;case et:n.mode=nt;case nt:if(u>=6&&c>=258){t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,b(t,m),s=t.next_out,o=t.output,c=t.avail_out,a=t.next_in,i=t.input,u=t.avail_in,h=n.hold,d=n.bits,n.mode===X&&(n.back=-1);break}for(n.back=0;kt=n.lencode[h&(1<>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t; +u--,h+=i[a++]<>yt)],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=yt+vt);){if(0===u)break t;u--,h+=i[a++]<>>=yt,d-=yt,n.back+=yt}if(h>>>=vt,d-=vt,n.back+=vt,n.length=$t,0===gt){n.mode=st;break}if(32>){n.back=-1,n.mode=X;break}if(64>){t.msg="invalid literal/length code",n.mode=ft;break}n.extra=15>,n.mode=rt;case rt:if(n.extra){for(Et=n.extra;Et>d;){if(0===u)break t;u--,h+=i[a++]<>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=it;case it:for(;kt=n.distcode[h&(1<>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<>yt)],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=yt+vt);){if(0===u)break t;u--,h+=i[a++]<>>=yt,d-=yt,n.back+=yt}if(h>>>=vt,d-=vt,n.back+=vt,64>){t.msg="invalid distance code",n.mode=ft;break}n.offset=$t,n.extra=15>,n.mode=ot;case ot:if(n.extra){for(Et=n.extra;Et>d;){if(0===u)break t;u--,h+=i[a++]<>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=ft;break}n.mode=at;case at:if(0===c)break t;if(v=m-c,n.offset>v){if(v=n.offset-v,v>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=ft;break}v>n.wnext?(v-=n.wnext,pt=n.wsize-v):pt=n.wnext-v,v>n.length&&(v=n.length),mt=n.window}else mt=o,pt=s-n.offset,v=n.length;v>c&&(v=c),c-=v,n.length-=v;do o[s++]=mt[pt++];while(--v);0===n.length&&(n.mode=nt);break;case st:if(0===c)break t;o[s++]=n.length,c--,n.mode=nt;break;case ut:if(n.wrap){for(;32>d;){if(0===u)break t;u--,h|=i[a++]<d;){if(0===u)break t;u--,h+=i[a++]<=T;T++)L[T]=0;for(O=0;p>O;O++)L[e[n+O]]++;for(M=S,z=i;z>=1&&0===L[z];z--);if(M>z&&(M=z),0===z)return m[v++]=20971520,m[v++]=20971520,$.bits=1,0;for(I=1;z>I&&0===L[I];I++);for(I>M&&(M=I),N=1,T=1;i>=T;T++)if(N<<=1,N-=L[T],0>N)return-1;if(N>0&&(t===s||1!==z))return-1;for(U[1]=0,T=1;i>T;T++)U[T+1]=U[T]+L[T];for(O=0;p>O;O++)0!==e[n+O]&&(g[U[e[n+O]]++]=O);if(t===s?(F=V=g,C=19):t===u?(F=l,B-=257,V=f,q-=257,C=256):(F=h,V=d,C=-1),R=0,O=0,T=I,x=v,D=M,j=0,w=-1,P=1<o||t===c&&P>a)return 1;for(var H=0;;){H++,E=T-j,g[O]C?(k=V[q+g[O]],A=F[B+g[O]]):(k=96,A=0),y=1<>j)+b]=E<<24|k<<16|A|0;while(0!==b);for(y=1<>=1;if(0!==y?(R&=y-1,R+=y):R=0,O++,0===--L[T]){if(T===z)break;T=e[n+g[O]]}if(T>M&&(R&_)!==w){for(0===j&&(j=M),x+=I,D=T-j,N=1<D+j&&(N-=L[D+j],!(0>=N));)D++,N<<=1;if(P+=1<o||t===c&&P>a)return 1;w=R&_,m[w]=M<<24|D<<16|x-v|0}}return 0!==R&&(m[x+R]=T-j<<24|64<<16|0),$.bits=M,0}},{"../utils/common":27}],37:[function(t,e,n){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(t,e,n){"use strict";function r(t){for(var e=t.length;--e>=0;)t[e]=0}function i(t){return 256>t?at[t]:at[256+(t>>>7)]}function o(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function a(t,e,n){t.bi_valid>X-n?(t.bi_buf|=e<>X-t.bi_valid,t.bi_valid+=n-X):(t.bi_buf|=e<>>=1,n<<=1;while(--e>0);return n>>>1}function c(t){16===t.bi_valid?(o(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function l(t,e){var n,r,i,o,a,s,u=e.dyn_tree,c=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,h=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(o=0;W>=o;o++)t.bl_count[o]=0;for(u[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;H>n;n++)r=t.heap[n],o=u[2*u[2*r+1]+1]+1,o>p&&(o=p,m++),u[2*r+1]=o,r>c||(t.bl_count[o]++,a=0,r>=d&&(a=h[r-d]),s=u[2*r],t.opt_len+=s*(o+a),f&&(t.static_len+=s*(l[2*r+1]+a)));if(0!==m){do{for(o=p-1;0===t.bl_count[o];)o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,m-=2}while(m>0);for(o=p;0!==o;o--)for(r=t.bl_count[o];0!==r;)i=t.heap[--n],i>c||(u[2*i+1]!==o&&(t.opt_len+=(o-u[2*i+1])*u[2*i],u[2*i+1]=o),r--)}}function f(t,e,n){var r,i,o=new Array(W+1),a=0;for(r=1;W>=r;r++)o[r]=a=a+n[r-1]<<1;for(i=0;e>=i;i++){var s=t[2*i+1];0!==s&&(t[2*i]=u(o[s]++,s))}}function h(){var t,e,n,r,i,o=new Array(W+1);for(n=0,r=0;B-1>r;r++)for(ut[r]=n,t=0;t<1<r;r++)for(ct[r]=i,t=0;t<1<>=7;V>r;r++)for(ct[r]=i<<7,t=0;t<1<=e;e++)o[e]=0;for(t=0;143>=t;)it[2*t+1]=8,t++,o[8]++;for(;255>=t;)it[2*t+1]=9,t++,o[9]++;for(;279>=t;)it[2*t+1]=7,t++,o[7]++;for(;287>=t;)it[2*t+1]=8,t++,o[8]++;for(f(it,U+1,o),t=0;V>t;t++)ot[2*t+1]=5,ot[2*t]=u(t,5);lt=new dt(it,Q,L+1,U,W),ft=new dt(ot,tt,0,V,W),ht=new dt(new Array(0),et,0,q,Y)}function d(t){var e;for(e=0;U>e;e++)t.dyn_ltree[2*e]=0;for(e=0;V>e;e++)t.dyn_dtree[2*e]=0;for(e=0;q>e;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*Z]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function p(t){t.bi_valid>8?o(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function m(t,e,n,r){p(t),r&&(o(t,n),o(t,~n)),O.arraySet(t.pending_buf,t.window,e,n,t.pending),t.pending+=n}function v(t,e,n,r){var i=2*e,o=2*n;return t[i]n;n++)0!==o[2*n]?(t.heap[++t.heap_len]=c=n,t.depth[n]=0):o[2*n+1]=0;for(;t.heap_len<2;)i=t.heap[++t.heap_len]=2>c?++c:0,o[2*i]=1,t.depth[i]=0,t.opt_len--,s&&(t.static_len-=a[2*i+1]);for(e.max_code=c,n=t.heap_len>>1;n>=1;n--)g(t,o,n);i=u;do n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],g(t,o,1),r=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=r,o[2*i]=o[2*n]+o[2*r],t.depth[i]=(t.depth[n]>=t.depth[r]?t.depth[n]:t.depth[r])+1,o[2*n+1]=o[2*r+1]=i,t.heap[1]=i++,g(t,o,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],l(t,e),f(o,c,t.bl_count)}function b(t,e,n){var r,i,o=-1,a=e[1],s=0,u=7,c=4;for(0===a&&(u=138,c=3),e[2*(n+1)+1]=65535,r=0;n>=r;r++)i=a,a=e[2*(r+1)+1],++ss?t.bl_tree[2*i]+=s:0!==i?(i!==o&&t.bl_tree[2*i]++,t.bl_tree[2*G]++):10>=s?t.bl_tree[2*K]++:t.bl_tree[2*J]++,s=0,o=i,0===a?(u=138,c=3):i===a?(u=6,c=3):(u=7,c=4))}function w(t,e,n){var r,i,o=-1,u=e[1],c=0,l=7,f=4;for(0===u&&(l=138,f=3),r=0;n>=r;r++)if(i=u,u=e[2*(r+1)+1],!(++cc){do s(t,i,t.bl_tree);while(0!==--c)}else 0!==i?(i!==o&&(s(t,i,t.bl_tree),c--),s(t,G,t.bl_tree),a(t,c-3,2)):10>=c?(s(t,K,t.bl_tree),a(t,c-3,3)):(s(t,J,t.bl_tree),a(t,c-11,7));c=0,o=i,0===u?(l=138,f=3):i===u?(l=6,f=3):(l=7,f=4)}}function _(t){var e;for(b(t,t.dyn_ltree,t.l_desc.max_code),b(t,t.dyn_dtree,t.d_desc.max_code),y(t,t.bl_desc),e=q-1;e>=3&&0===t.bl_tree[2*nt[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}function x(t,e,n,r){var i;for(a(t,e-257,5),a(t,n-1,5),a(t,r-4,4),i=0;r>i;i++)a(t,t.bl_tree[2*nt[i]+1],3);w(t,t.dyn_ltree,e-1),w(t,t.dyn_dtree,n-1)}function C(t){var e,n=4093624447;for(e=0;31>=e;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return z;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return M;for(e=32;L>e;e++)if(0!==t.dyn_ltree[2*e])return M;return z}function E(t){mt||(h(),mt=!0),t.l_desc=new pt(t.dyn_ltree,lt),t.d_desc=new pt(t.dyn_dtree,ft),t.bl_desc=new pt(t.bl_tree,ht),t.bi_buf=0,t.bi_valid=0,d(t)}function k(t,e,n,r){a(t,(j<<1)+(r?1:0),3),m(t,e,n,!0)}function A(t){a(t,N<<1,3),s(t,Z,it),c(t)}function S(t,e,n,r){var i,o,s=0;t.level>0?(t.strm.data_type===D&&(t.strm.data_type=C(t)),y(t,t.l_desc),y(t,t.d_desc),s=_(t),i=t.opt_len+3+7>>>3,o=t.static_len+3+7>>>3,i>=o&&(i=o)):i=o=n+5,i>=n+4&&-1!==e?k(t,e,n,r):t.strategy===I||o===i?(a(t,(N<<1)+(r?1:0),3),$(t,it,ot)):(a(t,(P<<1)+(r?1:0),3),x(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),$(t,t.dyn_ltree,t.dyn_dtree)),d(t),r&&p(t)}function T(t,e,n){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(st[n]+L+1)]++,t.dyn_dtree[2*i(e)]++),t.last_lit===t.lit_bufsize-1}var O=t("../utils/common"),I=4,z=0,M=1,D=2,j=0,N=1,P=2,R=3,F=258,B=29,L=256,U=L+1+B,V=30,q=19,H=2*U+1,W=15,X=16,Y=7,Z=256,G=16,K=17,J=18,Q=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],tt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],et=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],nt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rt=512,it=new Array(2*(U+2));r(it);var ot=new Array(2*V);r(ot);var at=new Array(rt);r(at);var st=new Array(F-R+1);r(st);var ut=new Array(B);r(ut);var ct=new Array(V);r(ct);var lt,ft,ht,dt=function(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length},pt=function(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e},mt=!1;n._tr_init=E,n._tr_stored_block=k,n._tr_flush_block=S,n._tr_tally=T,n._tr_align=A},{"../utils/common":27}],39:[function(t,e,n){"use strict";function r(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=r},{}]},{},[9])(9)}),function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e(require,exports,module):t.Tether=e()}(this,function(t,e,n){return function(){var t,e,n,r,i,o,a,s,u,c,l,f,h,d,p,m,v,g={}.hasOwnProperty,$=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},y=[].slice;null==this.Tether&&(this.Tether={modules:[]}),l=function(t){var e,n,r,i,o;if(n=getComputedStyle(t).position,"fixed"===n)return t;for(r=void 0,e=t;e=e.parentNode;){try{i=getComputedStyle(e)}catch(a){}if(null==i)return e;if(/(auto|scroll)/.test(i.overflow+i["overflow-y"]+i["overflow-x"])&&("absolute"!==n||"relative"===(o=i.position)||"absolute"===o||"fixed"===o))return e}return document.body},p=function(){var t;return t=0,function(){return t++}}(),v={},u=function(t){var e,r,o,a,s;if(o=t._tetherZeroElement,null==o&&(o=t.createElement("div"),o.setAttribute("data-tether-id",p()),i(o.style,{top:0,left:0,position:"absolute"}),t.body.appendChild(o),t._tetherZeroElement=o),e=o.getAttribute("data-tether-id"),null==v[e]){v[e]={},s=o.getBoundingClientRect();for(r in s)a=s[r],v[e][r]=a;n(function(){return v[e]=void 0})}return v[e]},h=null,a=function(t){var e,n,r,i,o,a,s;t===document?(n=document,t=document.documentElement):n=t.ownerDocument,r=n.documentElement,e={},s=t.getBoundingClientRect();for(i in s)a=s[i],e[i]=a;return o=u(n),e.top-=o.top,e.left-=o.left,null==e.width&&(e.width=document.body.scrollWidth-e.left-e.right),null==e.height&&(e.height=document.body.scrollHeight-e.top-e.bottom),e.top=e.top-r.clientTop,e.left=e.left-r.clientLeft,e.right=n.body.clientWidth-e.width-e.left,e.bottom=n.body.clientHeight-e.height-e.top,e},s=function(t){return t.offsetParent||document.documentElement},c=function(){var t,e,n,r,o;return t=document.createElement("div"),t.style.width="100%",t.style.height="200px",e=document.createElement("div"),i(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e),r=t.offsetWidth,e.style.overflow="scroll",o=t.offsetWidth,r===o&&(o=e.clientWidth),document.body.removeChild(e),n=r-o,{width:n,height:n}},i=function(t){var e,n,r,i,o,a,s;for(null==t&&(t={}),e=[],Array.prototype.push.apply(e,arguments),s=e.slice(1),o=0,a=s.length;a>o;o++)if(r=s[o])for(n in r)g.call(r,n)&&(i=r[n],t[n]=i);return t},d=function(t,e){var n,r,i,o,a;if(null!=t.classList){for(o=e.split(" "),a=[],r=0,i=o.length;i>r;r++)n=o[r],n.trim()&&a.push(t.classList.remove(n));return a}return t.className=t.className.replace(new RegExp("(^| )"+e.split(" ").join("|")+"( |$)","gi")," ")},e=function(t,e){var n,r,i,o,a;if(null!=t.classList){for(o=e.split(" "),a=[],r=0,i=o.length;i>r;r++)n=o[r],n.trim()&&a.push(t.classList.add(n));return a}return d(t,e),t.className+=" "+e},f=function(t,e){return null!=t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)},m=function(t,n,r){var i,o,a,s,u,c;for(o=0,s=r.length;s>o;o++)i=r[o],$.call(n,i)<0&&f(t,i)&&d(t,i);for(c=[],a=0,u=n.length;u>a;a++)i=n[a],f(t,i)?c.push(void 0):c.push(e(t,i));return c},r=[],n=function(t){return r.push(t)},o=function(){var t,e;for(e=[];t=r.pop();)e.push(t());return e},t=function(){function t(){}return t.prototype.on=function(t,e,n,r){var i;return null==r&&(r=!1),null==this.bindings&&(this.bindings={}),null==(i=this.bindings)[t]&&(i[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:r})},t.prototype.once=function(t,e,n){return this.on(t,e,n,!0)},t.prototype.off=function(t,e){var n,r,i;if(null!=(null!=(r=this.bindings)?r[t]:void 0)){if(null==e)return delete this.bindings[t];for(n=0,i=[];n=e&&e>=t-n},C=function(){var t,e,n,r,i;for(t=document.createElement("div"),i=["transform","webkitTransform","OTransform","MozTransform","msTransform"],n=0,r=i.length;r>n;n++)if(e=i[n],void 0!==t.style[e])return e}(),x=[],w=function(){var t,e,n;for(e=0,n=x.length;n>e;e++)t=x[e],t.position(!1);return l()},g=function(){var t;return null!=(t="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?t:+new Date},function(){var t,e,n,r,i,o,a,s,u;for(e=null,n=null,r=null,i=function(){if(null!=n&&n>16)return n=Math.min(n-16,250),void(r=setTimeout(i,250));if(!(null!=e&&g()-e<10))return null!=r&&(clearTimeout(r),r=null),e=g(),w(),n=g()-e},s=["resize","scroll","touchmove"],u=[],o=0,a=s.length;a>o;o++)t=s[o],u.push(window.addEventListener(t,i));return u}(),t={center:"center",left:"right",right:"left"},e={middle:"middle",top:"bottom",bottom:"top"},n={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},s=function(n,r){var i,o;return i=n.left,o=n.top,"auto"===i&&(i=t[r.left]),"auto"===o&&(o=e[r.top]),{left:i,top:o}},a=function(t){var e,r;return{left:null!=(e=n[t.left])?e:t.left,top:null!=(r=n[t.top])?r:t.top}},o=function(){var t,e,n,r,i,o,a;for(e=1<=arguments.length?T.call(arguments,0):[],n={top:0,left:0},i=0,o=e.length;o>i;i++)a=e[i],r=a.top,t=a.left,"string"==typeof r&&(r=parseFloat(r,10)),"string"==typeof t&&(t=parseFloat(t,10)),n.top+=r,n.left+=t;return n},$=function(t,e){return"string"==typeof t.left&&-1!==t.left.indexOf("%")&&(t.left=parseFloat(t.left,10)/100*e.width),"string"==typeof t.top&&-1!==t.top.indexOf("%")&&(t.top=parseFloat(t.top,10)/100*e.height),t},y=b=function(t){var e,n,r;return r=t.split(" "),n=r[0],e=r[1],{top:n,left:e}},A=function(){function t(t){this.position=O(this.position,this);var e,n,i,o,a;for(x.push(this),this.history=[],this.setOptions(t,!1),o=r.modules,n=0,i=o.length;i>n;n++)e=o[n],null!=(a=e.initialize)&&a.call(this);this.position()}return t.modules=[],t.prototype.getClass=function(t){var e,n;return(null!=(e=this.options.classes)?e[t]:void 0)?this.options.classes[t]:(null!=(n=this.options.classes)?n[t]:void 0)!==!1?this.options.classPrefix?""+this.options.classPrefix+"-"+t:t:""},t.prototype.setOptions=function(t,e){var n,r,o,a,s,u;for(this.options=t,null==e&&(e=!0),n={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"},this.options=c(n,this.options),s=this.options,this.element=s.element,this.target=s.target,this.targetModifier=s.targetModifier,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),u=["element","target"],o=0,a=u.length;a>o;o++){if(r=u[o],null==this[r])throw new Error("Tether Error: Both element and target must be defined");null!=this[r].jquery?this[r]=this[r][0]:"string"==typeof this[r]&&(this[r]=document.querySelector(this[r]))}if(i(this.element,this.getClass("element")),i(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");return this.targetAttachment=y(this.options.targetAttachment),this.attachment=y(this.options.attachment),this.offset=b(this.options.offset),this.targetOffset=b(this.options.targetOffset),null!=this.scrollParent&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParent=this.target:this.scrollParent=m(this.target),this.options.enabled!==!1?this.enable(e):void 0},t.prototype.getTargetBounds=function(){var t,e,n,r,i,o,a,s,u;if(null==this.targetModifier)return f(this.target);switch(this.targetModifier){case"visible":return this.target===document.body?{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth}:(t=f(this.target),i={height:t.height,width:t.width,top:t.top,left:t.left},i.height=Math.min(i.height,t.height-(pageYOffset-t.top)),i.height=Math.min(i.height,t.height-(t.top+t.height-(pageYOffset+innerHeight))),i.height=Math.min(innerHeight,i.height),i.height-=2,i.width=Math.min(i.width,t.width-(pageXOffset-t.left)),i.width=Math.min(i.width,t.width-(t.left+t.width-(pageXOffset+innerWidth))),i.width=Math.min(innerWidth,i.width),i.width-=2,i.topu.clientWidth||"scroll"===[s.overflow,s.overflowX]||this.target!==document.body,o=0,n&&(o=15),r=t.height-parseFloat(s.borderTopWidth)-parseFloat(s.borderBottomWidth)-o,i={width:15,height:.975*r*(r/u.scrollHeight),left:t.left+t.width-parseFloat(s.borderLeftWidth)-15},e=0,408>r&&this.target===document.body&&(e=-11e-5*Math.pow(r,2)-.00727*r+22.58),this.target!==document.body&&(i.height=Math.max(i.height,24)),a=this.target.scrollTop/(u.scrollHeight-r),i.top=a*(r-i.height-e)+t.top+parseFloat(s.borderTopWidth),this.target===document.body&&(i.height=Math.max(i.height,24)),i}},t.prototype.clearCache=function(){return this._cache={}},t.prototype.cache=function(t,e){return null==this._cache&&(this._cache={}),null==this._cache[t]&&(this._cache[t]=e.call(this)),this._cache[t]},t.prototype.enable=function(t){return null==t&&(t=!0),i(this.target,this.getClass("enabled")),i(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParent!==document&&this.scrollParent.addEventListener("scroll",this.position),t?this.position():void 0},t.prototype.disable=function(){return _(this.target,this.getClass("enabled")),_(this.element,this.getClass("enabled")),this.enabled=!1,null!=this.scrollParent?this.scrollParent.removeEventListener("scroll",this.position):void 0},t.prototype.destroy=function(){var t,e,n,r,i;for(this.disable(),i=[],t=n=0,r=x.length;r>n;t=++n){if(e=x[t],e===this){x.splice(t,1);break}i.push(void 0)}return i},t.prototype.updateAttachClasses=function(t,e){var n,r,i,o,a,s,c,l,f,h=this;for(null==t&&(t=this.attachment),null==e&&(e=this.targetAttachment),o=["left","top","bottom","right","middle","center"],(null!=(f=this._addAttachClasses)?f.length:void 0)&&this._addAttachClasses.splice(0,this._addAttachClasses.length),n=null!=this._addAttachClasses?this._addAttachClasses:this._addAttachClasses=[],t.top&&n.push(""+this.getClass("element-attached")+"-"+t.top),t.left&&n.push(""+this.getClass("element-attached")+"-"+t.left),e.top&&n.push(""+this.getClass("target-attached")+"-"+e.top),e.left&&n.push(""+this.getClass("target-attached")+"-"+e.left),r=[],a=0,c=o.length;c>a;a++)i=o[a],r.push(""+this.getClass("element-attached")+"-"+i);for(s=0,l=o.length;l>s;s++)i=o[s],r.push(""+this.getClass("target-attached")+"-"+i);return u(function(){return null!=h._addAttachClasses?(E(h.element,h._addAttachClasses,r),E(h.target,h._addAttachClasses,r),h._addAttachClasses=void 0):void 0})},t.prototype.position=function(t){var e,n,i,u,c,d,m,v,g,y,b,w,_,x,C,E,k,A,S,T,O,I,z,M,D,j,N,P,R,F,B,L,U,V,q,H=this;if(null==t&&(t=!0),this.enabled){for(this.clearCache(),T=s(this.targetAttachment,this.attachment),this.updateAttachClasses(this.attachment,T),e=this.cache("element-bounds",function(){return f(H.element)}),D=e.width,i=e.height,0===D&&0===i&&null!=this.lastSize?(F=this.lastSize,D=F.width,i=F.height):this.lastSize={width:D,height:i},z=I=this.cache("target-bounds",function(){return H.getTargetBounds()}),g=$(a(this.attachment),{width:D,height:i}),O=$(a(T),z),c=$(this.offset,{width:D,height:i}),d=$(this.targetOffset,z),g=o(g,c),O=o(O,d),u=I.left+O.left-g.left,M=I.top+O.top-g.top,B=r.modules,j=0,P=B.length;P>j;j++)if(m=B[j],C=m.position.call(this,{left:u,top:M,targetAttachment:T,targetPos:I,attachment:this.attachment,elementPos:e,offset:g,targetOffset:O,manualOffset:c,manualTargetOffset:d,scrollbarSize:A}),null!=C&&"object"==typeof C){if(C===!1)return!1;M=C.top,u=C.left}if(v={page:{top:M,left:u},viewport:{top:M-pageYOffset,bottom:pageYOffset-M-i+innerHeight,left:u-pageXOffset,right:pageXOffset-u-D+innerWidth}},document.body.scrollWidth>window.innerWidth&&(A=this.cache("scrollbar-size",p),v.viewport.bottom-=A.height),document.body.scrollHeight>window.innerHeight&&(A=this.cache("scrollbar-size",p),v.viewport.right-=A.width),(""!==(L=document.body.style.position)&&"static"!==L||""!==(U=document.body.parentElement.style.position)&&"static"!==U)&&(v.page.bottom=document.body.scrollHeight-M-i,v.page.right=document.body.scrollWidth-u-D),(null!=(V=this.options.optimizations)?V.moveElement:void 0)!==!1&&null==this.targetModifier){for(b=this.cache("target-offsetparent",function(){return h(H.target)}),x=this.cache("target-offsetparent-bounds",function(){return f(b)}),_=getComputedStyle(b),n=getComputedStyle(this.element),w=x,y={},q=["Top","Left","Bottom","Right"],N=0,R=q.length;R>N;N++)S=q[N],y[S.toLowerCase()]=parseFloat(_["border"+S+"Width"]);x.right=document.body.scrollWidth-x.left-w.width+y.right,x.bottom=document.body.scrollHeight-x.top-w.height+y.bottom,v.page.top>=x.top+y.top&&v.page.bottom>=x.bottom&&v.page.left>=x.left+y.left&&v.page.right>=x.right&&(k=b.scrollTop,E=b.scrollLeft,v.offset={top:v.page.top-x.top+k-y.top,left:v.page.left-x.left+E-y.left})}return this.move(v),this.history.unshift(v),this.history.length>3&&this.history.pop(),t&&l(),!0}},t.prototype.move=function(t){var e,n,r,i,o,a,s,l,f,d,p,m,v,g,$,y,b,w=this;if(null!=this.element.parentNode){l={};for(d in t){l[d]={};for(i in t[d]){for(r=!1,y=this.history,g=0,$=y.length;$>g;g++)if(s=y[g],!k(null!=(b=s[d])?b[i]:void 0,t[d][i])){r=!0;break}r||(l[d][i]=!0)}}e={top:"",left:"",right:"",bottom:""},f=function(t,n){var r,i,o;return(null!=(o=w.options.optimizations)?o.gpu:void 0)===!1?(t.top?e.top=""+n.top+"px":e.bottom=""+n.bottom+"px",t.left?e.left=""+n.left+"px":e.right=""+n.right+"px"):(t.top?(e.top=0,i=n.top):(e.bottom=0,i=-n.bottom),t.left?(e.left=0,r=n.left):(e.right=0,r=-n.right),e[C]="translateX("+Math.round(r)+"px) translateY("+Math.round(i)+"px)","msTransform"!==C?e[C]+=" translateZ(0)":void 0)},o=!1,(l.page.top||l.page.bottom)&&(l.page.left||l.page.right)?(e.position="absolute",f(l.page,t.page)):(l.viewport.top||l.viewport.bottom)&&(l.viewport.left||l.viewport.right)?(e.position="fixed",f(l.viewport,t.viewport)):null!=l.offset&&l.offset.top&&l.offset.left?(e.position="absolute",a=this.cache("target-offsetparent",function(){return h(w.target)}),h(this.element)!==a&&u(function(){return w.element.parentNode.removeChild(w.element),a.appendChild(w.element)}),f(l.offset,t.offset),o=!0):(e.position="absolute",f({top:!0,left:!0},t.page)),o||"BODY"===this.element.parentNode.tagName||(this.element.parentNode.removeChild(this.element),document.body.appendChild(this.element)),v={},m=!1;for(i in e)p=e[i],n=this.element.style[i],""===n||""===p||"top"!==i&&"left"!==i&&"bottom"!==i&&"right"!==i||(n=parseFloat(n),p=parseFloat(p)),n!==p&&(m=!0,v[i]=e[i]);return m?u(function(){return c(w.element.style,v)}):void 0}},t}(),r.position=w,this.Tether=c(A,r)}.call(this),function(){var t,e,n,r,i,o,a,s,u,c,l=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};c=this.Tether.Utils,a=c.getOuterSize,o=c.getBounds,s=c.getSize,r=c.extend,u=c.updateClasses,n=c.defer,e={left:"right",right:"left",top:"bottom",bottom:"top",middle:"middle"},t=["left","top","right","bottom"],i=function(e,n){var r,i,a,s,u,c,l;if("scrollParent"===n?n=e.scrollParent:"window"===n&&(n=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),n===document&&(n=n.documentElement),null!=n.nodeType)for(i=s=o(n),u=getComputedStyle(n),n=[i.left,i.top,s.width+i.left,s.height+i.top],r=c=0,l=t.length;l>c;r=++c)a=t[r],a=a[0].toUpperCase()+a.substr(1),"Top"===a||"Left"===a?n[r]+=parseFloat(u["border"+a+"Width"]):n[r]-=parseFloat(u["border"+a+"Width"]);return n},this.Tether.modules.push({position:function(e){var a,s,c,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T,O,I,z,M,D,j,N,P,R,F,B,L,U,V,q,H,W,X,Y,Z,G,K,J,Q,tt,et=this;if(M=e.top,$=e.left,S=e.targetAttachment,!this.options.constraints)return!0;for(E=function(e){var n,r,i,o;for(et.removeClass(e),o=[],r=0,i=t.length;i>r;r++)n=t[r],o.push(et.removeClass(""+e+"-"+n));return o},X=this.cache("element-bounds",function(){return o(et.element)}),g=X.height,D=X.width,0===D&&0===g&&null!=this.lastSize&&(Y=this.lastSize,D=Y.width,g=Y.height),O=this.cache("target-bounds",function(){return et.getTargetBounds()}),T=O.height,I=O.width,A={},v={},s=[this.getClass("pinned"),this.getClass("out-of-bounds")],Z=this.options.constraints,j=0,F=Z.length;F>j;j++)m=Z[j],m.outOfBoundsClass&&s.push(m.outOfBoundsClass),m.pinnedClass&&s.push(m.pinnedClass);for(N=0,B=s.length;B>N;N++)for(p=s[N],G=["left","top","right","bottom"],P=0,L=G.length;L>P;P++)k=G[P],s.push(""+p+"-"+k);for(a=[],A=r({},S),v=r({},this.attachment),K=this.options.constraints,R=0,U=K.length;U>R;R++){if(m=K[R],z=m.to,c=m.attachment,_=m.pin,null==c&&(c=""),l.call(c," ")>=0?(J=c.split(" "),d=J[0],h=J[1]):h=d=c,f=i(this,z),("target"===d||"both"===d)&&(Mf[3]&&"bottom"===A.top&&(M-=T,A.top="top")),"together"===d&&(Mf[3]&&"bottom"===A.top&&("top"===v.top?(M-=T,A.top="top",M-=g,v.top="bottom"):"bottom"===v.top&&(M-=T,A.top="top",M+=g,v.top="top")),"middle"===A.top&&(M+g>f[3]&&"top"===v.top?(M-=g,v.top="bottom"):Mf[2]&&"right"===A.left&&($-=I,A.left="left")),"together"===h&&($f[2]&&"right"===A.left?"left"===v.left?($-=I,A.left="left",$-=D,v.left="right"):"right"===v.left&&($-=I,A.left="left",$+=D,v.left="left"):"center"===A.left&&($+D>f[2]&&"left"===v.left?($-=D,v.left="right"):$f[3]&&"top"===v.top&&(M-=g,v.top="bottom")),("element"===h||"both"===h)&&($f[2]&&"left"===v.left&&($-=D,v.left="right")),"string"==typeof _?_=function(){var t,e,n,r;for(n=_.split(","),r=[],e=0,t=n.length;t>e;e++)w=n[e],r.push(w.trim());return r}():_===!0&&(_=["top","left","right","bottom"]),_||(_=[]),x=[],y=[],M=0?(M=f[1],x.push("top")):y.push("top")),M+g>f[3]&&(l.call(_,"bottom")>=0?(M=f[3]-g,x.push("bottom")):y.push("bottom")),$=0?($=f[0],x.push("left")):y.push("left")),$+D>f[2]&&(l.call(_,"right")>=0?($=f[2]-D,x.push("right")):y.push("right")),x.length)for(C=null!=(Q=this.options.pinnedClass)?Q:this.getClass("pinned"), +a.push(C),H=0,V=x.length;V>H;H++)k=x[H],a.push(""+C+"-"+k);if(y.length)for(b=null!=(tt=this.options.outOfBoundsClass)?tt:this.getClass("out-of-bounds"),a.push(b),W=0,q=y.length;q>W;W++)k=y[W],a.push(""+b+"-"+k);(l.call(x,"left")>=0||l.call(x,"right")>=0)&&(v.left=A.left=!1),(l.call(x,"top")>=0||l.call(x,"bottom")>=0)&&(v.top=A.top=!1),(A.top!==S.top||A.left!==S.left||v.top!==this.attachment.top||v.left!==this.attachment.left)&&this.updateAttachClasses(v,A)}return n(function(){return u(et.target,a,s),u(et.element,a,s)}),{top:M,left:$}}})}.call(this),function(){var t,e,n,r;r=this.Tether.Utils,e=r.getBounds,n=r.updateClasses,t=r.defer,this.Tether.modules.push({position:function(r){var i,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T=this;if(p=r.top,c=r.left,C=this.cache("element-bounds",function(){return e(T.element)}),u=C.height,m=C.width,d=this.getTargetBounds(),s=p+u,l=c+m,i=[],p<=d.bottom&&s>=d.top)for(E=["left","right"],v=0,b=E.length;b>v;v++)f=E[v],((k=d[f])===c||k===l)&&i.push(f);if(c<=d.right&&l>=d.left)for(A=["top","bottom"],g=0,w=A.length;w>g;g++)f=A[g],((S=d[f])===p||S===s)&&i.push(f);for(a=[],o=[],h=["left","top","right","bottom"],a.push(this.getClass("abutted")),$=0,_=h.length;_>$;$++)f=h[$],a.push(""+this.getClass("abutted")+"-"+f);for(i.length&&o.push(this.getClass("abutted")),y=0,x=i.length;x>y;y++)f=i[y],o.push(""+this.getClass("abutted")+"-"+f);return t(function(){return n(T.target,o,a),n(T.element,o,a)}),!0}})}.call(this),function(){this.Tether.modules.push({position:function(t){var e,n,r,i,o,a,s;return a=t.top,e=t.left,this.options.shift?(n=function(t){return"function"==typeof t?t.call(this,{top:a,left:e}):t},r=n(this.options.shift),"string"==typeof r?(r=r.split(" "),r[1]||(r[1]=r[0]),o=r[0],i=r[1],o=parseFloat(o,10),i=parseFloat(i,10)):(s=[r.top,r.left],o=s[0],i=s[1]),a+=o,e+=i,{top:a,left:e}):void 0}})}.call(this),this.Tether}),function(t,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.viewportUnitsBuggyfillHacks=e()}(this,function(){"use strict";function t(t,o,u,c){if((e.contentHack||e.behaviorHack)&&("content"===u||"behavior"===u)){var l=e.contentHack&&!s&&"content"===u&&c.indexOf("use_css_content_hack")>-1,f=e.behaviorHack&&!a&&"behavior"===u&&c.indexOf("use_css_behavior_hack")>-1;if(l||f){var h=c.replace(r,"");f&&(h=h.replace(i,"")),h.split(";").forEach(function(e){var r=e.split(":");if(2===r.length){var i=r[0].trim(),a=r[1].trim();if("use_css_content_hack"!==i&&"use_css_behavior_hack"!==i&&(t.push([o,i,a]),n.test(a))){var s=a.replace(n,"-webkit-calc(");t.push([o,i,s])}}})}}}var e,n=/calc\(/g,r=/[\"\']/g,i=/url\([^\)]*\)/g,o=!1,a=!0,s=!0;return{required:function(t){return t.isMobileSafari||o},initialize:function(t){e=t;var n=document.createElement("div");n.style.width="1vmax",a=""!==n.style.width,e.isMobileSafari&&(s=!1)},initializeEvents:function(t,e,n){t.force||o&&!t._listeningToResize&&(window.addEventListener("resize",n,!0),t._listeningToResize=!0)},findDeclarations:function(e,n,r,i){null!==r&&t(e,n,r,i)},overwriteDeclaration:function(t,e,n){return o&&"filter"===e&&(n=n.replace(/px/g,"")),n}}}),function(t,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.viewportUnitsBuggyfill=e()}(this,function(){"use strict";function t(t,e){var n;return function(){var r=this,i=arguments,o=function(){t.apply(r,i)};clearTimeout(n),n=setTimeout(o,e)}}function e(){try{return window.self!==window.top}catch(t){return!0}}function n(n){y||(n===!0&&(n={force:!0}),m=n||{},m.isMobileSafari=b,(m.force||b||x||m.hacks&&m.hacks.required(m))&&(m.hacks&&m.hacks.initialize(m),y=!0,$=document.createElement("style"),$.id="patched-viewport",document.head.appendChild($),f(function(){var n=t(i,m.refreshDebounceWait||100);window.addEventListener("orientationchange",n,!0),window.addEventListener("pageshow",n,!0),(m.force||x||e())&&(window.addEventListener("resize",n,!0),m._listeningToResize=!0),m.hacks&&m.hacks.initializeEvents(m,i,n),i()})))}function r(){$.textContent=s()}function i(){y&&(o(),setTimeout(function(){r()},1))}function o(){return g=[],_.call(document.styleSheets,function(t){"patched-viewport"!==t.ownerNode.id&&t.cssRules&&(t.media&&t.media.mediaText&&window.matchMedia&&!window.matchMedia(t.media.mediaText).matches||_.call(t.cssRules,a))}),g}function a(t){if(7===t.type){var e=t.cssText;return w.lastIndex=0,void(w.test(e)&&(g.push([t,null,e]),m.hacks&&m.hacks.findDeclarations(g,t,null,e)))}if(!t.style){if(!t.cssRules)return;return void _.call(t.cssRules,function(t){a(t)})}_.call(t.style,function(e){var n=t.style.getPropertyValue(e);w.lastIndex=0,w.test(n)&&(g.push([t,e,n]),m.hacks&&m.hacks.findDeclarations(g,t,e,n))})}function s(){v=l();var t,e,n=[],r=[];return g.forEach(function(i){var o=u.apply(null,i),a=o.selector.length?o.selector.join(" {\n")+" {\n":"",s=new Array(o.selector.length+1).join("\n}");return a&&a===t?(a&&!t&&(t=a,e=s),void r.push(o.content)):(r.length&&(n.push(t+r.join("\n")+e),r.length=0),void(a?(t=a,e=s,r.push(o.content)):(n.push(o.content),t=null,e=null)))}),r.length&&n.push(t+r.join("\n")+e),n.join("\n\n")}function u(t,e,n){var r=n.replace(w,c),i=[];m.hacks&&(r=m.hacks.overwriteDeclaration(t,e,r)),e&&(i.push(t.selectorText),r=e+": "+r+";");for(var o=t.parentRule;o;)i.unshift("@media "+o.media.mediaText),o=o.parentRule;return{selector:i,content:r}}function c(t,e,n){var r=v[n],i=parseFloat(e)/100;return i*r+"px"}function l(){var t=window.innerHeight,e=window.innerWidth;return{vh:t,vw:e,vmax:Math.max(e,t),vmin:Math.min(e,t)}}function f(t){var e=0,n=function(){e--,e||t()};_.call(document.styleSheets,function(t){t.href&&h(t.href)!==h(location.href)&&(e++,d(t.ownerNode,n))}),e||t()}function h(t){return t.slice(0,t.indexOf("/",t.indexOf("://")+3))}function d(t,e){p(t.href,function(){var n=document.createElement("style");n.media=t.media,n.setAttribute("data-href",t.href),n.textContent=this.responseText,t.parentNode.replaceChild(n,t),e()},e)}function p(t,e,n){var r=new XMLHttpRequest;if("withCredentials"in r)r.open("GET",t,!0);else{if("undefined"==typeof XDomainRequest)throw new Error("cross-domain XHR not supported");r=new XDomainRequest,r.open("GET",t)}return r.onload=e,r.onerror=n,r.send(),r}var m,v,g,$,y=!1,b=/(iPhone|iPod|iPad).+AppleWebKit/i.test(window.navigator.userAgent),w=/([+-]?[0-9.]+)(vh|vw|vmin|vmax)/g,_=[].forEach,x=!1;return{version:"0.4.1",findProperties:o,getCss:s,init:n,refresh:i}}); \ No newline at end of file diff --git a/afm-client/dist.prod/favicon.ico b/afm-client/dist.prod/favicon.ico new file mode 100644 index 0000000..eeb7ab7 Binary files /dev/null and b/afm-client/dist.prod/favicon.ico differ diff --git a/afm-client/dist.prod/global_styles/foundation-conf.min.css b/afm-client/dist.prod/global_styles/foundation-conf.min.css new file mode 100644 index 0000000..076aa73 --- /dev/null +++ b/afm-client/dist.prod/global_styles/foundation-conf.min.css @@ -0,0 +1,2 @@ +.block-list li>span,button[disabled],html input[disabled]{cursor:default}body,sub,sup{position:relative}.block-list .with-dropdown select,select{-webkit-appearance:none;-moz-appearance:none}h1,h2,h3,h4,h5,h6,p{text-rendering:optimizeLegibility}.action-sheet ul,.action-sheet.dark ul,.action-sheet.primary ul,.block-list,.block-list ul,.button-group,.inline-list,.menu-bar,.small-up-1,.small-up-10,.small-up-11,.small-up-12,.small-up-2,.small-up-3,.small-up-4,.small-up-6,.small-up-7,.small-up-8,.small-up-9,ul.no-bullet,ul.no-bullet li ol,ul.no-bullet li ul{list-style-type:none}.notification-icon,.v-align .align-top{align-self:flex-start}.clearfix:after,hr{clear:both}@font-face{font-family:foundation-icons;src:url(/bower_components/foundation-icons.woff) format("woff");font-weight:400;font-style:normal}.fi-address-book:before,.fi-alert:before,.fi-align-center:before,.fi-align-justify:before,.fi-align-left:before,.fi-align-right:before,.fi-anchor:before,.fi-annotate:before,.fi-archive:before,.fi-arrow-down:before,.fi-arrow-left:before,.fi-arrow-right:before,.fi-arrow-up:before,.fi-arrows-compress:before,.fi-arrows-expand:before,.fi-arrows-in:before,.fi-arrows-out:before,.fi-asl:before,.fi-asterisk:before,.fi-at-sign:before,.fi-background-color:before,.fi-battery-empty:before,.fi-battery-full:before,.fi-battery-half:before,.fi-bitcoin-circle:before,.fi-bitcoin:before,.fi-blind:before,.fi-bluetooth:before,.fi-bold:before,.fi-book-bookmark:before,.fi-book:before,.fi-bookmark:before,.fi-braille:before,.fi-burst-new:before,.fi-burst-sale:before,.fi-burst:before,.fi-calendar:before,.fi-camera:before,.fi-check:before,.fi-checkbox:before,.fi-clipboard-notes:before,.fi-clipboard-pencil:before,.fi-clipboard:before,.fi-clock:before,.fi-closed-caption:before,.fi-cloud:before,.fi-comment-minus:before,.fi-comment-quotes:before,.fi-comment-video:before,.fi-comment:before,.fi-comments:before,.fi-compass:before,.fi-contrast:before,.fi-credit-card:before,.fi-crop:before,.fi-crown:before,.fi-css3:before,.fi-database:before,.fi-die-five:before,.fi-die-four:before,.fi-die-one:before,.fi-die-six:before,.fi-die-three:before,.fi-die-two:before,.fi-dislike:before,.fi-dollar-bill:before,.fi-dollar:before,.fi-download:before,.fi-eject:before,.fi-elevator:before,.fi-euro:before,.fi-eye:before,.fi-fast-forward:before,.fi-female-symbol:before,.fi-female:before,.fi-filter:before,.fi-first-aid:before,.fi-flag:before,.fi-folder-add:before,.fi-folder-lock:before,.fi-folder:before,.fi-foot:before,.fi-foundation:before,.fi-graph-bar:before,.fi-graph-horizontal:before,.fi-graph-pie:before,.fi-graph-trend:before,.fi-guide-dog:before,.fi-hearing-aid:before,.fi-heart:before,.fi-home:before,.fi-html5:before,.fi-indent-less:before,.fi-indent-more:before,.fi-info:before,.fi-italic:before,.fi-key:before,.fi-laptop:before,.fi-layout:before,.fi-lightbulb:before,.fi-like:before,.fi-link:before,.fi-list-bullet:before,.fi-list-number:before,.fi-list-thumbnails:before,.fi-list:before,.fi-lock:before,.fi-loop:before,.fi-magnifying-glass:before,.fi-mail:before,.fi-male-female:before,.fi-male-symbol:before,.fi-male:before,.fi-map:before,.fi-marker:before,.fi-megaphone:before,.fi-microphone:before,.fi-minus-circle:before,.fi-minus:before,.fi-mobile-signal:before,.fi-mobile:before,.fi-monitor:before,.fi-mountains:before,.fi-music:before,.fi-next:before,.fi-no-dogs:before,.fi-no-smoking:before,.fi-page-add:before,.fi-page-copy:before,.fi-page-csv:before,.fi-page-delete:before,.fi-page-doc:before,.fi-page-edit:before,.fi-page-export-csv:before,.fi-page-export-doc:before,.fi-page-export-pdf:before,.fi-page-export:before,.fi-page-filled:before,.fi-page-multiple:before,.fi-page-pdf:before,.fi-page-remove:before,.fi-page-search:before,.fi-page:before,.fi-paint-bucket:before,.fi-paperclip:before,.fi-pause:before,.fi-paw:before,.fi-paypal:before,.fi-pencil:before,.fi-photo:before,.fi-play-circle:before,.fi-play-video:before,.fi-play:before,.fi-plus:before,.fi-pound:before,.fi-power:before,.fi-previous:before,.fi-price-tag:before,.fi-pricetag-multiple:before,.fi-print:before,.fi-prohibited:before,.fi-projection-screen:before,.fi-puzzle:before,.fi-quote:before,.fi-record:before,.fi-refresh:before,.fi-results-demographics:before,.fi-results:before,.fi-rewind-ten:before,.fi-rewind:before,.fi-rss:before,.fi-safety-cone:before,.fi-save:before,.fi-share:before,.fi-sheriff-badge:before,.fi-shield:before,.fi-shopping-bag:before,.fi-shopping-cart:before,.fi-shuffle:before,.fi-skull:before,.fi-social-500px:before,.fi-social-adobe:before,.fi-social-amazon:before,.fi-social-android:before,.fi-social-apple:before,.fi-social-behance:before,.fi-social-bing:before,.fi-social-blogger:before,.fi-social-delicious:before,.fi-social-designer-news:before,.fi-social-deviant-art:before,.fi-social-digg:before,.fi-social-dribbble:before,.fi-social-drive:before,.fi-social-dropbox:before,.fi-social-evernote:before,.fi-social-facebook:before,.fi-social-flickr:before,.fi-social-forrst:before,.fi-social-foursquare:before,.fi-social-game-center:before,.fi-social-github:before,.fi-social-google-plus:before,.fi-social-hacker-news:before,.fi-social-hi5:before,.fi-social-instagram:before,.fi-social-joomla:before,.fi-social-lastfm:before,.fi-social-linkedin:before,.fi-social-medium:before,.fi-social-myspace:before,.fi-social-orkut:before,.fi-social-path:before,.fi-social-picasa:before,.fi-social-pinterest:before,.fi-social-rdio:before,.fi-social-reddit:before,.fi-social-skillshare:before,.fi-social-skype:before,.fi-social-smashing-mag:before,.fi-social-snapchat:before,.fi-social-spotify:before,.fi-social-squidoo:before,.fi-social-stack-overflow:before,.fi-social-steam:before,.fi-social-stumbleupon:before,.fi-social-treehouse:before,.fi-social-tumblr:before,.fi-social-twitter:before,.fi-social-vimeo:before,.fi-social-windows:before,.fi-social-xbox:before,.fi-social-yahoo:before,.fi-social-yelp:before,.fi-social-youtube:before,.fi-social-zerply:before,.fi-social-zurb:before,.fi-sound:before,.fi-star:before,.fi-stop:before,.fi-strikethrough:before,.fi-subscript:before,.fi-superscript:before,.fi-tablet-landscape:before,.fi-tablet-portrait:before,.fi-target-two:before,.fi-target:before,.fi-telephone-accessible:before,.fi-telephone:before,.fi-text-color:before,.fi-thumbnails:before,.fi-ticket:before,.fi-torso-business:before,.fi-torso-female:before,.fi-torso:before,.fi-torsos-all-female:before,.fi-torsos-all:before,.fi-torsos-female-male:before,.fi-torsos-male-female:before,.fi-torsos:before,.fi-trash:before,.fi-trees:before,.fi-trophy:before,.fi-underline:before,.fi-universal-access:before,.fi-unlink:before,.fi-unlock:before,.fi-upload-cloud:before,.fi-upload:before,.fi-usb:before,.fi-video:before,.fi-volume-none:before,.fi-volume-strike:before,.fi-volume:before,.fi-web:before,.fi-wheelchair:before,.fi-widget:before,.fi-wrench:before,.fi-x-circle:before,.fi-x:before,.fi-yen:before,.fi-zoom-in:before,.fi-zoom-out:before{font-family:foundation-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;display:inline-block;text-decoration:inherit}.block-list header,.menu-bar>li.title,.title-bar .title,b,optgroup,strong{font-weight:700}.fi-address-book:before{content:"\f100"}.fi-alert:before{content:"\f101"}.fi-align-center:before{content:"\f102"}.fi-align-justify:before{content:"\f103"}.fi-align-left:before{content:"\f104"}.fi-align-right:before{content:"\f105"}.fi-anchor:before{content:"\f106"}.fi-annotate:before{content:"\f107"}.fi-archive:before{content:"\f108"}.fi-arrow-down:before{content:"\f109"}.fi-arrow-left:before{content:"\f10a"}.fi-arrow-right:before{content:"\f10b"}.fi-arrow-up:before{content:"\f10c"}.fi-arrows-compress:before{content:"\f10d"}.fi-arrows-expand:before{content:"\f10e"}.fi-arrows-in:before{content:"\f10f"}.fi-arrows-out:before{content:"\f110"}.fi-asl:before{content:"\f111"}.fi-asterisk:before{content:"\f112"}.fi-at-sign:before{content:"\f113"}.fi-background-color:before{content:"\f114"}.fi-battery-empty:before{content:"\f115"}.fi-battery-full:before{content:"\f116"}.fi-battery-half:before{content:"\f117"}.fi-bitcoin-circle:before{content:"\f118"}.fi-bitcoin:before{content:"\f119"}.fi-blind:before{content:"\f11a"}.fi-bluetooth:before{content:"\f11b"}.fi-bold:before{content:"\f11c"}.fi-book-bookmark:before{content:"\f11d"}.fi-book:before{content:"\f11e"}.fi-bookmark:before{content:"\f11f"}.fi-braille:before{content:"\f120"}.fi-burst-new:before{content:"\f121"}.fi-burst-sale:before{content:"\f122"}.fi-burst:before{content:"\f123"}.fi-calendar:before{content:"\f124"}.fi-camera:before{content:"\f125"}.fi-check:before{content:"\f126"}.fi-checkbox:before{content:"\f127"}.fi-clipboard-notes:before{content:"\f128"}.fi-clipboard-pencil:before{content:"\f129"}.fi-clipboard:before{content:"\f12a"}.fi-clock:before{content:"\f12b"}.fi-closed-caption:before{content:"\f12c"}.fi-cloud:before{content:"\f12d"}.fi-comment-minus:before{content:"\f12e"}.fi-comment-quotes:before{content:"\f12f"}.fi-comment-video:before{content:"\f130"}.fi-comment:before{content:"\f131"}.fi-comments:before{content:"\f132"}.fi-compass:before{content:"\f133"}.fi-contrast:before{content:"\f134"}.fi-credit-card:before{content:"\f135"}.fi-crop:before{content:"\f136"}.fi-crown:before{content:"\f137"}.fi-css3:before{content:"\f138"}.fi-database:before{content:"\f139"}.fi-die-five:before{content:"\f13a"}.fi-die-four:before{content:"\f13b"}.fi-die-one:before{content:"\f13c"}.fi-die-six:before{content:"\f13d"}.fi-die-three:before{content:"\f13e"}.fi-die-two:before{content:"\f13f"}.fi-dislike:before{content:"\f140"}.fi-dollar-bill:before{content:"\f141"}.fi-dollar:before{content:"\f142"}.fi-download:before{content:"\f143"}.fi-eject:before{content:"\f144"}.fi-elevator:before{content:"\f145"}.fi-euro:before{content:"\f146"}.fi-eye:before{content:"\f147"}.fi-fast-forward:before{content:"\f148"}.fi-female-symbol:before{content:"\f149"}.fi-female:before{content:"\f14a"}.fi-filter:before{content:"\f14b"}.fi-first-aid:before{content:"\f14c"}.fi-flag:before{content:"\f14d"}.fi-folder-add:before{content:"\f14e"}.fi-folder-lock:before{content:"\f14f"}.fi-folder:before{content:"\f150"}.fi-foot:before{content:"\f151"}.fi-foundation:before{content:"\f152"}.fi-graph-bar:before{content:"\f153"}.fi-graph-horizontal:before{content:"\f154"}.fi-graph-pie:before{content:"\f155"}.fi-graph-trend:before{content:"\f156"}.fi-guide-dog:before{content:"\f157"}.fi-hearing-aid:before{content:"\f158"}.fi-heart:before{content:"\f159"}.fi-home:before{content:"\f15a"}.fi-html5:before{content:"\f15b"}.fi-indent-less:before{content:"\f15c"}.fi-indent-more:before{content:"\f15d"}.fi-info:before{content:"\f15e"}.fi-italic:before{content:"\f15f"}.fi-key:before{content:"\f160"}.fi-laptop:before{content:"\f161"}.fi-layout:before{content:"\f162"}.fi-lightbulb:before{content:"\f163"}.fi-like:before{content:"\f164"}.fi-link:before{content:"\f165"}.fi-list-bullet:before{content:"\f166"}.fi-list-number:before{content:"\f167"}.fi-list-thumbnails:before{content:"\f168"}.fi-list:before{content:"\f169"}.fi-lock:before{content:"\f16a"}.fi-loop:before{content:"\f16b"}.fi-magnifying-glass:before{content:"\f16c"}.fi-mail:before{content:"\f16d"}.fi-male-female:before{content:"\f16e"}.fi-male-symbol:before{content:"\f16f"}.fi-male:before{content:"\f170"}.fi-map:before{content:"\f171"}.fi-marker:before{content:"\f172"}.fi-megaphone:before{content:"\f173"}.fi-microphone:before{content:"\f174"}.fi-minus-circle:before{content:"\f175"}.fi-minus:before{content:"\f176"}.fi-mobile-signal:before{content:"\f177"}.fi-mobile:before{content:"\f178"}.fi-monitor:before{content:"\f179"}.fi-mountains:before{content:"\f17a"}.fi-music:before{content:"\f17b"}.fi-next:before{content:"\f17c"}.fi-no-dogs:before{content:"\f17d"}.fi-no-smoking:before{content:"\f17e"}.fi-page-add:before{content:"\f17f"}.fi-page-copy:before{content:"\f180"}.fi-page-csv:before{content:"\f181"}.fi-page-delete:before{content:"\f182"}.fi-page-doc:before{content:"\f183"}.fi-page-edit:before{content:"\f184"}.fi-page-export-csv:before{content:"\f185"}.fi-page-export-doc:before{content:"\f186"}.fi-page-export-pdf:before{content:"\f187"}.fi-page-export:before{content:"\f188"}.fi-page-filled:before{content:"\f189"}.fi-page-multiple:before{content:"\f18a"}.fi-page-pdf:before{content:"\f18b"}.fi-page-remove:before{content:"\f18c"}.fi-page-search:before{content:"\f18d"}.fi-page:before{content:"\f18e"}.fi-paint-bucket:before{content:"\f18f"}.fi-paperclip:before{content:"\f190"}.fi-pause:before{content:"\f191"}.fi-paw:before{content:"\f192"}.fi-paypal:before{content:"\f193"}.fi-pencil:before{content:"\f194"}.fi-photo:before{content:"\f195"}.fi-play-circle:before{content:"\f196"}.fi-play-video:before{content:"\f197"}.fi-play:before{content:"\f198"}.fi-plus:before{content:"\f199"}.fi-pound:before{content:"\f19a"}.fi-power:before{content:"\f19b"}.fi-previous:before{content:"\f19c"}.fi-price-tag:before{content:"\f19d"}.fi-pricetag-multiple:before{content:"\f19e"}.fi-print:before{content:"\f19f"}.fi-prohibited:before{content:"\f1a0"}.fi-projection-screen:before{content:"\f1a1"}.fi-puzzle:before{content:"\f1a2"}.fi-quote:before{content:"\f1a3"}.fi-record:before{content:"\f1a4"}.fi-refresh:before{content:"\f1a5"}.fi-results-demographics:before{content:"\f1a6"}.fi-results:before{content:"\f1a7"}.fi-rewind-ten:before{content:"\f1a8"}.fi-rewind:before{content:"\f1a9"}.fi-rss:before{content:"\f1aa"}.fi-safety-cone:before{content:"\f1ab"}.fi-save:before{content:"\f1ac"}.fi-share:before{content:"\f1ad"}.fi-sheriff-badge:before{content:"\f1ae"}.fi-shield:before{content:"\f1af"}.fi-shopping-bag:before{content:"\f1b0"}.fi-shopping-cart:before{content:"\f1b1"}.fi-shuffle:before{content:"\f1b2"}.fi-skull:before{content:"\f1b3"}.fi-social-500px:before{content:"\f1b4"}.fi-social-adobe:before{content:"\f1b5"}.fi-social-amazon:before{content:"\f1b6"}.fi-social-android:before{content:"\f1b7"}.fi-social-apple:before{content:"\f1b8"}.fi-social-behance:before{content:"\f1b9"}.fi-social-bing:before{content:"\f1ba"}.fi-social-blogger:before{content:"\f1bb"}.fi-social-delicious:before{content:"\f1bc"}.fi-social-designer-news:before{content:"\f1bd"}.fi-social-deviant-art:before{content:"\f1be"}.fi-social-digg:before{content:"\f1bf"}.fi-social-dribbble:before{content:"\f1c0"}.fi-social-drive:before{content:"\f1c1"}.fi-social-dropbox:before{content:"\f1c2"}.fi-social-evernote:before{content:"\f1c3"}.fi-social-facebook:before{content:"\f1c4"}.fi-social-flickr:before{content:"\f1c5"}.fi-social-forrst:before{content:"\f1c6"}.fi-social-foursquare:before{content:"\f1c7"}.fi-social-game-center:before{content:"\f1c8"}.fi-social-github:before{content:"\f1c9"}.fi-social-google-plus:before{content:"\f1ca"}.fi-social-hacker-news:before{content:"\f1cb"}.fi-social-hi5:before{content:"\f1cc"}.fi-social-instagram:before{content:"\f1cd"}.fi-social-joomla:before{content:"\f1ce"}.fi-social-lastfm:before{content:"\f1cf"}.fi-social-linkedin:before{content:"\f1d0"}.fi-social-medium:before{content:"\f1d1"}.fi-social-myspace:before{content:"\f1d2"}.fi-social-orkut:before{content:"\f1d3"}.fi-social-path:before{content:"\f1d4"}.fi-social-picasa:before{content:"\f1d5"}.fi-social-pinterest:before{content:"\f1d6"}.fi-social-rdio:before{content:"\f1d7"}.fi-social-reddit:before{content:"\f1d8"}.fi-social-skillshare:before{content:"\f1d9"}.fi-social-skype:before{content:"\f1da"}.fi-social-smashing-mag:before{content:"\f1db"}.fi-social-snapchat:before{content:"\f1dc"}.fi-social-spotify:before{content:"\f1dd"}.fi-social-squidoo:before{content:"\f1de"}.fi-social-stack-overflow:before{content:"\f1df"}.fi-social-steam:before{content:"\f1e0"}.fi-social-stumbleupon:before{content:"\f1e1"}.fi-social-treehouse:before{content:"\f1e2"}.fi-social-tumblr:before{content:"\f1e3"}.fi-social-twitter:before{content:"\f1e4"}.fi-social-vimeo:before{content:"\f1e5"}.fi-social-windows:before{content:"\f1e6"}.fi-social-xbox:before{content:"\f1e7"}.fi-social-yahoo:before{content:"\f1e8"}.fi-social-yelp:before{content:"\f1e9"}.fi-social-youtube:before{content:"\f1ea"}.fi-social-zerply:before{content:"\f1eb"}.fi-social-zurb:before{content:"\f1ec"}.fi-sound:before{content:"\f1ed"}.fi-star:before{content:"\f1ee"}.fi-stop:before{content:"\f1ef"}.fi-strikethrough:before{content:"\f1f0"}.fi-subscript:before{content:"\f1f1"}.fi-superscript:before{content:"\f1f2"}.fi-tablet-landscape:before{content:"\f1f3"}.fi-tablet-portrait:before{content:"\f1f4"}.fi-target-two:before{content:"\f1f5"}.fi-target:before{content:"\f1f6"}.fi-telephone-accessible:before{content:"\f1f7"}.fi-telephone:before{content:"\f1f8"}.fi-text-color:before{content:"\f1f9"}.fi-thumbnails:before{content:"\f1fa"}.fi-ticket:before{content:"\f1fb"}.fi-torso-business:before{content:"\f1fc"}.fi-torso-female:before{content:"\f1fd"}.fi-torso:before{content:"\f1fe"}.fi-torsos-all-female:before{content:"\f1ff"}.fi-torsos-all:before{content:"\f200"}.fi-torsos-female-male:before{content:"\f201"}.fi-torsos-male-female:before{content:"\f202"}.fi-torsos:before{content:"\f203"}.fi-trash:before{content:"\f204"}.fi-trees:before{content:"\f205"}.fi-trophy:before{content:"\f206"}.fi-underline:before{content:"\f207"}.fi-universal-access:before{content:"\f208"}.fi-unlink:before{content:"\f209"}.fi-unlock:before{content:"\f20a"}.fi-upload-cloud:before{content:"\f20b"}.fi-upload:before{content:"\f20c"}.fi-usb:before{content:"\f20d"}.fi-video:before{content:"\f20e"}.fi-volume-none:before{content:"\f20f"}.fi-volume-strike:before{content:"\f210"}.fi-volume:before{content:"\f211"}.fi-web:before{content:"\f212"}.fi-wheelchair:before{content:"\f213"}.fi-widget:before{content:"\f214"}.fi-wrench:before{content:"\f215"}.fi-x-circle:before{content:"\f216"}.fi-x:before{content:"\f217"}.fi-yen:before{content:"\f218"}.fi-zoom-in:before{content:"\f219"}.fi-zoom-out:before{content:"\f21a"}/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}dfn{font-style:italic}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;vertical-align:baseline}.iconic,img{vertical-align:middle}sup{top:-.5em}sub{bottom:-.25em}img{border:0;max-width:100%;height:auto;-ms-interpolation-mode:bicubic;display:inline-block}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}body,p{font-weight:400}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}table{border-collapse:collapse;border-spacing:0}meta.foundation-version{font-family:"1.1.0"}meta.foundation-mq{font-family:"small=0&medium=40rem&large=75rem&xlarge=90rem&xxlarge=120rem"}body,html{height:100%;font-size:100%}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background:#fff;color:#222;padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[ui-sref],[zf-close],[zf-open],[zf-toggle],a{cursor:pointer}#map_canvas embed,#map_canvas img,#map_canvas object,.map_canvas embed,.map_canvas img,.map_canvas object{max-width:none!important}.padding{padding:1rem}.iconic{width:1rem;height:1rem}a>.iconic{margin-top:-2px;margin-right:.25rem}.iconic *,.iconic .iconic-property-accent,.iconic-color-primary *,.iconic-color-primary .iconic-property-accent,a>.iconic *,a>.iconic .iconic-property-accent{fill:#00558b;stroke:#00558b}.iconic-color-success *,.iconic-color-success .iconic-property-accent{fill:#43AC6A;stroke:#43AC6A}.iconic-color-warning *,.iconic-color-warning .iconic-property-accent{fill:#F08A24;stroke:#F08A24}.iconic-color-alert *,.iconic-color-alert .iconic-property-accent{fill:#F04124;stroke:#F04124}.iconic-color-dark *,.iconic-color-dark .iconic-property-accent{fill:#232323;stroke:#232323}.iconic-color-secondary *,.iconic-color-secondary .iconic-property-accent{fill:#f1f1f1;stroke:#f1f1f1}.action-sheet-container{position:relative;display:inline-block}.action-sheet-container .button{margin-left:0;margin-right:0}.action-sheet{position:fixed;left:0;z-index:1000;width:100%;padding:1rem;background:#fff;text-align:center;transition-property:transform opacity;transition-duration:.25s;transition-timing-function:ease-out;box-shadow:0 -3px 10px rgba(0,0,0,.25);bottom:0;transform:translateY(100%)}.action-sheet.is-active{transform:translateY(0)}.action-sheet ul{margin:0 -1rem -1rem;user-select:none}.action-sheet ul:first-child{margin-top:-1rem}.action-sheet ul:first-child li:first-child{border-top:0}.action-sheet ul a{display:block;padding:.8rem;line-height:1;color:#000;border-top:1px solid #ccc}.action-sheet ul a:hover{color:#000;background:#f2f2f2}.action-sheet ul .alert>a{color:#F04124}.action-sheet ul .disabled>a{pointer-events:none;color:#999}@media only screen and (min-width:40em){.action-sheet,.action-sheet.top{border-radius:4px;box-shadow:0 0 10px rgba(0,0,0,.25)}.action-sheet.top::after,.action-sheet.top::before,.action-sheet::after,.action-sheet::before{content:'';position:absolute;left:50%;display:block;height:0;border-left:10px solid transparent;border-right:10px solid transparent;margin-left:-10px}.action-sheet{position:absolute;left:50%;width:300px;opacity:0;pointer-events:none;top:auto;bottom:0;transform:translateX(-50%) translateY(110%)}.action-sheet.is-active{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(100%)}.action-sheet::after,.action-sheet::before{width:0;top:-10px;bottom:auto;border-top:0;border-bottom:10px solid #fff}.action-sheet::before{top:-12px;border-bottom-color:rgba(0,0,0,.15)}.action-sheet.top{position:absolute;left:50%;width:300px;opacity:0;pointer-events:none;top:0;bottom:auto;transform:translateX(-50%) translateY(-120%)}.action-sheet.top.is-active{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(-110%)}.action-sheet.top::after,.action-sheet.top::before{width:0;top:auto;bottom:-10px;border-top:10px solid #fff;border-bottom:0}.action-sheet.top::before{bottom:-12px;border-top-color:rgba(0,0,0,.15)}}.card,.card.primary{box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.action-sheet.primary{background:#00558b;color:#fff;border:0}.action-sheet.primary::before{display:none}.action-sheet.primary::after,.action-sheet.primary::before{border-top-color:#00558b}.action-sheet.primary.top::after,.action-sheet.primary.top::before{border-bottom-color:#00558b}.action-sheet.primary ul{margin:0 -1rem -1rem;user-select:none}.action-sheet.primary ul:first-child{margin-top:-1rem}.action-sheet.primary ul:first-child li:first-child{border-top:0}.action-sheet.primary ul a{display:block;padding:.8rem;line-height:1;color:#fff;border-top:1px solid #006cb0}.action-sheet.primary ul a:hover{color:#fff;background:#00609e}.action-sheet.primary ul .alert>a{color:#F04124}.action-sheet.primary ul .disabled>a{pointer-events:none;color:#999}.action-sheet.dark{background:#232323;color:#fff;border:0}.action-sheet.dark::before{display:none}.action-sheet.dark::after,.action-sheet.dark::before{border-top-color:#232323}.action-sheet.dark.top::after,.action-sheet.dark.top::before{border-bottom-color:#232323}.action-sheet.dark ul{margin:0 -1rem -1rem;user-select:none}.action-sheet.dark ul:first-child{margin-top:-1rem}.action-sheet.dark ul:first-child li:first-child{border-top:0}.action-sheet.dark ul a{display:block;padding:.8rem;line-height:1;color:#fff;border-top:1px solid #393939}.action-sheet.dark ul a:hover{color:#fff;background:#2e2e2e}.action-sheet.dark ul .alert>a{color:#F04124}.action-sheet.dark ul .disabled>a{pointer-events:none;color:#999}.block-list ul{margin-left:0}.block-list{margin-bottom:1rem;line-height:1;user-select:none;font-size:1rem;margin-left:-1rem;margin-right:-1rem}.block-list input[type=number],.block-list input[type=search],.block-list input[type=text],.block-list input[type=password],.block-list input[type=date],.block-list input[type=datetime],.block-list input[type=datetime-local],.block-list input[type=month],.block-list input[type=week],.block-list input[type=email],.block-list input[type=tel],.block-list input[type=time],.block-list input[type=url],.block-list input[type=color],.block-list textarea{margin:0;border:0;line-height:1;height:auto;padding:.8rem 1rem;color:inherit}.block-list input[type=number]:focus,.block-list input[type=number]:hover,.block-list input[type=search]:focus,.block-list input[type=search]:hover,.block-list input[type=text]:focus,.block-list input[type=text]:hover,.block-list input[type=password]:focus,.block-list input[type=password]:hover,.block-list input[type=date]:focus,.block-list input[type=date]:hover,.block-list input[type=datetime]:focus,.block-list input[type=datetime]:hover,.block-list input[type=datetime-local]:focus,.block-list input[type=datetime-local]:hover,.block-list input[type=month]:focus,.block-list input[type=month]:hover,.block-list input[type=week]:focus,.block-list input[type=week]:hover,.block-list input[type=email]:focus,.block-list input[type=email]:hover,.block-list input[type=tel]:focus,.block-list input[type=tel]:hover,.block-list input[type=time]:focus,.block-list input[type=time]:hover,.block-list input[type=url]:focus,.block-list input[type=url]:hover,.block-list input[type=color]:focus,.block-list input[type=color]:hover,.block-list textarea:focus,.block-list textarea:hover{border:0}.block-list li>input[type=checkbox],.block-list li>input[type=radio]{position:absolute;left:-9999px}.block-list li>input[type=checkbox]+label,.block-list li>input[type=radio]+label{display:block;font-size:1rem;margin:0}.block-list li>input[type=checkbox]:checked+label::before,.block-list li>input[type=radio]:checked+label::before{background-image:url('data:image/svg+xml;utf8,');content:'';background-size:100% 100%;width:1.5em;height:1.5em;color:#00558b;float:right;pointer-events:none;margin-top:-.25em}@media screen and (min-width:0\0){.block-list li>input[type=checkbox]:checked+label::before,.block-list li>input[type=radio]:checked+label::before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdlJREFUeNrMl0FugzAQRY3TRZeoFyhVL0BOkGTXJezaHZwguUnECaCrdFd6gqQnCN11Uyk5QekNOlONJWMVGMCgfGlkEIY3HnsG2xFM3d96PjQB2AJsWdPtAPYOln+dTwXnuw4DHEGzBvNFN6EDCTiS9XIAwB40acNoucKoxODIie0AwAOCu8KOSnIiNx/MakK+A7sW9oTferxx3fP3T1nURoBG/irGVahHwjHm/Ggx7E3TMVdrQmoP0gngghhpZQ3QvG/EdPLUelARWI8Aycjq9Md0qMIdbcNhjmOKLoY7quk3l1Rebeqg4AwFkmq7LWGOh1pmNY0etZAWSq0OX8HoS4JvWuCopbSY26EGR/CW86K0BF+pwkLwlPuyHJhOCl5oe4ZtF++vOqST+GdOYwO+71pN2VNAjmQGPCe42weuHDg0PI8olUwnYrXTGQJH9gxq8l1LKvrQx4O6/YY32Kp/ugb3ey7gZ4xAzuhYiYTxB/UHZFAuaREVXZ2g6yFlvEC2yoKEmbsRZYNgVLk2JeaOaG+xLHN+WCszDWMqLGOrJFa1DlApjSdwoHJGqGzLIb0+cas0wh5Bh780ngswx8GJD7h8sHg2wLA/mfDLPZpdxOF0quP5rwADAAFIzSRvu1m5AAAAAElFTkSuQmCC)}}.block-list .with-dropdown{color:inherit}.block-list .with-dropdown select{outline:0;background:0;border:0;height:auto;padding:.8rem 1rem;margin:0;font-size:1em;line-height:1;color:inherit}.block-list .switch{position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.block-list.with-icons li>a,.block-list.with-icons li>label,.block-list.with-icons li>span{padding-left:2.8rem}.block-list.with-icons li .iconic,.block-list.with-icons li img{position:absolute;top:.26rem;left:.26rem;width:2.08rem;height:2.08rem;border-radius:8px;pointer-events:none}.block-list header{margin-top:1em;color:#666;margin-bottom:.5em;margin-left:1rem;font-size:.8em;cursor:default;text-transform:uppercase}.block-list li{position:relative;border-bottom:1px solid #d0d0d0}.block-list li:first-child{border-top:1px solid #d0d0d0}.block-list li>a,.block-list li>label,.block-list li>span{display:block;padding:.8rem 1rem;color:#000;line-height:1}.block-list li>a,.block-list li>label{cursor:pointer}.block-list li>a:hover,.block-list li>label:hover{color:#000}.block-list li select:hover,.block-list li>a:hover,.block-list li>label:hover{background:#f4f4f4}.block-list li.caution>a,.block-list li.caution>a:hover{color:#F04124}.block-list li.disabled>a{cursor:default}.block-list li.disabled>a,.block-list li.disabled>a:hover{color:#999}.block-list li.disabled>a:hover{background:0 0}.block-list li.with-chevron::after{content:'\203A';display:block;position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-weight:700;color:#666;font-size:2em}.block-list li.with-chevron .block-list-label{padding-right:1.5rem}.block-list li .block-list-label{display:inline-block;float:right;padding:0;color:#999;pointer-events:none}.block-list li .block-list-label.left{margin-left:.8rem;float:none}.button,.button-group>li>a,.button-group>li>button,.button-group>li>label{border:0;text-align:center;line-height:1;cursor:pointer;-webkit-appearance:none;-webkit-font-smoothing:antialiased;transition:background .25s ease-out;vertical-align:middle;padding:.85em 1em;border-radius:0}.button-group li.disabled>a,.button-group li.disabled>button,.button-group li.disabled>label,.button.disabled{opacity:.5;cursor:default;pointer-events:none}.button{font-size:.9rem;display:inline-block;width:auto;margin:0 1rem 1rem 0;background:#00558b;color:#fff}.button .iconic,.button.large .iconic,.button.small .iconic,.button.tiny .iconic{width:1em;margin-right:.25em;margin-top:-2px;height:1em;vertical-align:middle}.button:focus,.button:hover{background:#004876;color:#fff}.button .iconic *,.button .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button.tiny{font-size:.63rem}.button.small{font-size:.72rem}.button.large{font-size:1.17rem}.button.expand{display:block;width:100%;margin-left:0;margin-right:0}.button.secondary{background:#f1f1f1;color:#000}.button.secondary:focus,.button.secondary:hover{background:#cdcdcd;color:#000}.button.secondary .iconic *,.button.secondary .iconic .iconic-property-accent{fill:#000;stroke:#000}.button.alert .iconic *,.button.alert .iconic .iconic-property-accent,.button.success .iconic *,.button.success .iconic .iconic-property-accent,.button.warning .iconic *,.button.warning .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button.success{background:#43AC6A;color:#fff}.button.success:focus,.button.success:hover{background:#39925a;color:#fff}.button.warning{background:#F08A24;color:#fff}.button.warning:focus,.button.warning:hover{background:#dc750f;color:#fff}.button.alert{background:#F04124;color:#fff}.button.alert:focus,.button.alert:hover{background:#dc2c0f;color:#fff}.button.info{background:#A0D3E8;color:#000}.button.info:focus,.button.info:hover{background:#71bddd;color:#000}.button.info .iconic *,.button.info .iconic .iconic-property-accent{fill:#000;stroke:#000}.button.dark{background:#232323;color:#fff}.button.dark:focus,.button.dark:hover{background:#1e1e1e;color:#fff}.button.dark .iconic *,.button.dark .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button.hollow{border:1px solid #00558b;background:0 0;color:#00558b}.button.hollow:focus,.button.hollow:hover{border-color:#008ee8;background:0 0;color:#008ee8}.button.hollow .iconic *,.button.hollow .iconic .iconic-property-accent{fill:#00558b;stroke:#00558b}.button.hollow:hover .iconic *,.button.hollow:hover .iconic .iconic-property-accent{fill:#008ee8;stroke:#008ee8}.button.hollow.secondary{border:1px solid #f1f1f1;background:0 0;color:#f1f1f1}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#f5f5f5;background:0 0;color:#f5f5f5}.button.hollow.secondary .iconic *,.button.hollow.secondary .iconic .iconic-property-accent{fill:#f1f1f1;stroke:#f1f1f1}.button.hollow.secondary:hover .iconic *,.button.hollow.secondary:hover .iconic .iconic-property-accent{fill:#f5f5f5;stroke:#f5f5f5}.button.hollow.success{border:1px solid #43AC6A;background:0 0;color:#43AC6A}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#6dc68e;background:0 0;color:#6dc68e}.button.hollow.success .iconic *,.button.hollow.success .iconic .iconic-property-accent{fill:#43AC6A;stroke:#43AC6A}.button.hollow.success:hover .iconic *,.button.hollow.success:hover .iconic .iconic-property-accent{fill:#6dc68e;stroke:#6dc68e}.button.hollow.warning{border:1px solid #F08A24;background:0 0;color:#F08A24}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#f4a75b;background:0 0;color:#f4a75b}.button.hollow.warning .iconic *,.button.hollow.warning .iconic .iconic-property-accent{fill:#F08A24;stroke:#F08A24}.button.hollow.warning:hover .iconic *,.button.hollow.warning:hover .iconic .iconic-property-accent{fill:#f4a75b;stroke:#f4a75b}.button.hollow.alert{border:1px solid #F04124;background:0 0;color:#F04124}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#f4715b;background:0 0;color:#f4715b}.button.hollow.alert .iconic *,.button.hollow.alert .iconic .iconic-property-accent{fill:#F04124;stroke:#F04124}.button.hollow.alert:hover .iconic *,.button.hollow.alert:hover .iconic .iconic-property-accent{fill:#f4715b;stroke:#f4715b}.button.hollow.info{border:1px solid #A0D3E8;background:0 0;color:#A0D3E8}.button.hollow.info:focus,.button.hollow.info:hover{border-color:#b8deee;background:0 0;color:#b8deee}.button.hollow.info .iconic *,.button.hollow.info .iconic .iconic-property-accent{fill:#A0D3E8;stroke:#A0D3E8}.button.hollow.info:hover .iconic *,.button.hollow.info:hover .iconic .iconic-property-accent{fill:#b8deee;stroke:#b8deee}.button.hollow.dark{border:1px solid #232323;background:0 0;color:#232323}.button.hollow.dark:focus,.button.hollow.dark:hover{border-color:#5a5a5a;background:0 0;color:#5a5a5a}.button.hollow.dark .iconic *,.button.hollow.dark .iconic .iconic-property-accent{fill:#232323;stroke:#232323}.button.hollow.dark:hover .iconic *,.button.hollow.dark:hover .iconic .iconic-property-accent{fill:#5a5a5a;stroke:#5a5a5a}.button-group{margin:0 0 1rem;overflow:hidden;font-size:.9rem}.button-group>li>a,.button-group>li>button,.button-group>li>label{border-radius:0;font-size:inherit;display:block;margin:0}.button-group>li>input+label{margin-left:0}.button-group>li:not(:last-child)>a,.button-group>li:not(:last-child)>button,.button-group>li:not(:last-child)>label{border-right:1px solid #004068}.button-group .iconic{width:1em;height:1em;vertical-align:middle;margin-right:.25em;margin-top:-2px}.button-group.segmented,.button-group.segmented.alert,.button-group.segmented.secondary,.button-group.segmented.success,.button-group.segmented.warning{border:1px solid #00558b;transition-property:background color}.slideInDown.ng-enter,.slideInDown.ng-hide-remove,.slideInLeft.ng-enter,.slideInLeft.ng-hide-remove,.slideInRight.ng-enter,.slideInRight.ng-hide-remove,.slideInUp.ng-enter,.slideInUp.ng-hide-remove,.slideOutBottom.ng-hide-add,.slideOutBottom.ng-leave,.slideOutLeft.ng-hide-add,.slideOutLeft.ng-leave,.slideOutRight.ng-hide-add,.slideOutRight.ng-leave,.slideOutUp.ng-hide-add,.slideOutUp.ng-leave{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity}.button-group.segmented>li>input[type=radio]{position:absolute;left:-9999px}.button-group.segmented.alert>li>a,.button-group.segmented.alert>li>button,.button-group.segmented.alert>li>label,.button-group.segmented.secondary>li>a,.button-group.segmented.secondary>li>button,.button-group.segmented.secondary>li>label,.button-group.segmented.success>li>a,.button-group.segmented.success>li>button,.button-group.segmented.success>li>label,.button-group.segmented.warning>li>a,.button-group.segmented.warning>li>button,.button-group.segmented.warning>li>label,.button-group.segmented>li>a,.button-group.segmented>li>button,.button-group.segmented>li>label{margin-right:0;background:0 0}.button-group{display:inline-flex;border-radius:0}.button-group>li{flex:0 0 auto}.button-group>li>a,.button-group>li>button,.button-group>li>label{background:#00558b;color:#fff;border-color:#004876}.button-group>li>a:focus,.button-group>li>a:hover,.button-group>li>button:focus,.button-group>li>button:hover,.button-group>li>label:focus,.button-group>li>label:hover{background:#004876;color:#fff}.button-group>li>a .iconic *,.button-group>li>a .iconic .iconic-property-accent,.button-group>li>button .iconic *,.button-group>li>button .iconic .iconic-property-accent,.button-group>li>label .iconic *,.button-group>li>label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group>li.is-active>a,.button-group>li.is-active>button,.button-group>li.is-active>label{background:#004876}.button-group.secondary>li>a,.button-group.secondary>li>button,.button-group.secondary>li>label{background:#f1f1f1;color:#000;border-color:#cdcdcd}.button-group.secondary>li>a:focus,.button-group.secondary>li>a:hover,.button-group.secondary>li>button:focus,.button-group.secondary>li>button:hover,.button-group.secondary>li>label:focus,.button-group.secondary>li>label:hover{background:#cdcdcd;color:#000}.button-group.secondary>li>a .iconic *,.button-group.secondary>li>a .iconic .iconic-property-accent,.button-group.secondary>li>button .iconic *,.button-group.secondary>li>button .iconic .iconic-property-accent,.button-group.secondary>li>label .iconic *,.button-group.secondary>li>label .iconic .iconic-property-accent{fill:#000;stroke:#000}.button-group.alert>li>a .iconic *,.button-group.alert>li>a .iconic .iconic-property-accent,.button-group.alert>li>button .iconic *,.button-group.alert>li>button .iconic .iconic-property-accent,.button-group.alert>li>label .iconic *,.button-group.alert>li>label .iconic .iconic-property-accent,.button-group.success>li>a .iconic *,.button-group.success>li>a .iconic .iconic-property-accent,.button-group.success>li>button .iconic *,.button-group.success>li>button .iconic .iconic-property-accent,.button-group.success>li>label .iconic *,.button-group.success>li>label .iconic .iconic-property-accent,.button-group.warning>li>a .iconic *,.button-group.warning>li>a .iconic .iconic-property-accent,.button-group.warning>li>button .iconic *,.button-group.warning>li>button .iconic .iconic-property-accent,.button-group.warning>li>label .iconic *,.button-group.warning>li>label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.secondary>li.is-active>a,.button-group.secondary>li.is-active>button,.button-group.secondary>li.is-active>label{background:#cdcdcd}.button-group.success>li>a,.button-group.success>li>button,.button-group.success>li>label{background:#43AC6A;color:#fff;border-color:#39925a}.button-group.success>li>a:focus,.button-group.success>li>a:hover,.button-group.success>li>button:focus,.button-group.success>li>button:hover,.button-group.success>li>label:focus,.button-group.success>li>label:hover{background:#39925a;color:#fff}.button-group.success>li.is-active>a,.button-group.success>li.is-active>button,.button-group.success>li.is-active>label{background:#39925a}.button-group.warning>li>a,.button-group.warning>li>button,.button-group.warning>li>label{background:#F08A24;color:#fff;border-color:#dc750f}.button-group.warning>li>a:focus,.button-group.warning>li>a:hover,.button-group.warning>li>button:focus,.button-group.warning>li>button:hover,.button-group.warning>li>label:focus,.button-group.warning>li>label:hover{background:#dc750f;color:#fff}.button-group.warning>li.is-active>a,.button-group.warning>li.is-active>button,.button-group.warning>li.is-active>label{background:#dc750f}.button-group.alert>li>a,.button-group.alert>li>button,.button-group.alert>li>label{background:#F04124;color:#fff;border-color:#dc2c0f}.button-group.alert>li>a:focus,.button-group.alert>li>a:hover,.button-group.alert>li>button:focus,.button-group.alert>li>button:hover,.button-group.alert>li>label:focus,.button-group.alert>li>label:hover{background:#dc2c0f;color:#fff}.button-group.alert>li.is-active>a,.button-group.alert>li.is-active>button,.button-group.alert>li.is-active>label{background:#dc2c0f}.button-group>li.secondary>a,.button-group>li.secondary>button,.button-group>li.secondary>label{background:#f1f1f1;color:#000;border-color:#f1f1f1}.button-group>li.secondary>a:focus,.button-group>li.secondary>a:hover,.button-group>li.secondary>button:focus,.button-group>li.secondary>button:hover,.button-group>li.secondary>label:focus,.button-group>li.secondary>label:hover{background:#cdcdcd;color:#000;border-color:#b5b5b5}.button-group>li.secondary>a .iconic *,.button-group>li.secondary>a .iconic .iconic-property-accent,.button-group>li.secondary>button .iconic *,.button-group>li.secondary>button .iconic .iconic-property-accent,.button-group>li.secondary>label .iconic *,.button-group>li.secondary>label .iconic .iconic-property-accent{fill:#000;stroke:#000}.button-group>li.alert>a .iconic *,.button-group>li.alert>a .iconic .iconic-property-accent,.button-group>li.alert>button .iconic *,.button-group>li.alert>button .iconic .iconic-property-accent,.button-group>li.alert>label .iconic *,.button-group>li.alert>label .iconic .iconic-property-accent,.button-group>li.success>a .iconic *,.button-group>li.success>a .iconic .iconic-property-accent,.button-group>li.success>button .iconic *,.button-group>li.success>button .iconic .iconic-property-accent,.button-group>li.success>label .iconic *,.button-group>li.success>label .iconic .iconic-property-accent,.button-group>li.warning>a .iconic *,.button-group>li.warning>a .iconic .iconic-property-accent,.button-group>li.warning>button .iconic *,.button-group>li.warning>button .iconic .iconic-property-accent,.button-group>li.warning>label .iconic *,.button-group>li.warning>label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group>li.success>a,.button-group>li.success>button,.button-group>li.success>label{background:#43AC6A;color:#fff;border-color:#43AC6A}.button-group>li.success>a:focus,.button-group>li.success>a:hover,.button-group>li.success>button:focus,.button-group>li.success>button:hover,.button-group>li.success>label:focus,.button-group>li.success>label:hover{background:#39925a;color:#fff;border-color:#328150}.button-group>li.warning>a,.button-group>li.warning>button,.button-group>li.warning>label{background:#F08A24;color:#fff;border-color:#F08A24}.button-group>li.warning>a:focus,.button-group>li.warning>a:hover,.button-group>li.warning>button:focus,.button-group>li.warning>button:hover,.button-group>li.warning>label:focus,.button-group>li.warning>label:hover{background:#dc750f;color:#fff;border-color:#c2680d}.button-group>li.alert>a,.button-group>li.alert>button,.button-group>li.alert>label{background:#F04124;color:#fff;border-color:#F04124}.button-group>li.alert>a:focus,.button-group>li.alert>a:hover,.button-group>li.alert>button:focus,.button-group>li.alert>button:hover,.button-group>li.alert>label:focus,.button-group>li.alert>label:hover{background:#dc2c0f;color:#fff;border-color:#c2270d}.button-group.segmented{border-color:#00558b}.button-group.segmented>li>a,.button-group.segmented>li>button,.button-group.segmented>li>label{border-color:#00558b;color:#00558b}.button-group.segmented>li>a:hover,.button-group.segmented>li>button:hover,.button-group.segmented>li>label:hover{background:rgba(0,85,139,.25);color:#00558b}.button-group.segmented>li>a .iconic *,.button-group.segmented>li>a .iconic .iconic-property-accent,.button-group.segmented>li>button .iconic *,.button-group.segmented>li>button .iconic .iconic-property-accent,.button-group.segmented>li>label .iconic *,.button-group.segmented>li>label .iconic .iconic-property-accent{fill:#00558b;stroke:#00558b}.button-group.segmented>li.is-active>a,.button-group.segmented>li.is-active>a:hover,.button-group.segmented>li>input:checked+label,.button-group.segmented>li>input:checked+label:hover{background:#00558b;color:#fff}.button-group.segmented>li.is-active>a .iconic *,.button-group.segmented>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented>li>input:checked+label .iconic *,.button-group.segmented>li>input:checked+label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.segmented.secondary{border-color:#f1f1f1}.button-group.segmented.secondary>li>a,.button-group.segmented.secondary>li>button,.button-group.segmented.secondary>li>label{border-color:#f1f1f1;color:#f1f1f1}.button-group.segmented.secondary>li>a:hover,.button-group.segmented.secondary>li>button:hover,.button-group.segmented.secondary>li>label:hover{background:rgba(241,241,241,.25);color:#f1f1f1}.button-group.segmented.secondary>li>a .iconic *,.button-group.segmented.secondary>li>a .iconic .iconic-property-accent,.button-group.segmented.secondary>li>button .iconic *,.button-group.segmented.secondary>li>button .iconic .iconic-property-accent,.button-group.segmented.secondary>li>label .iconic *,.button-group.segmented.secondary>li>label .iconic .iconic-property-accent{fill:#f1f1f1;stroke:#f1f1f1}.button-group.segmented.secondary>li.is-active>a,.button-group.segmented.secondary>li.is-active>a:hover,.button-group.segmented.secondary>li>input:checked+label,.button-group.segmented.secondary>li>input:checked+label:hover{background:#f1f1f1;color:#000}.button-group.segmented.secondary>li.is-active>a .iconic *,.button-group.segmented.secondary>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.secondary>li>input:checked+label .iconic *,.button-group.segmented.secondary>li>input:checked+label .iconic .iconic-property-accent{fill:#000;stroke:#000}.button-group.segmented.success{border-color:#43AC6A}.button-group.segmented.success>li>a,.button-group.segmented.success>li>button,.button-group.segmented.success>li>label{border-color:#43AC6A;color:#43AC6A}.button-group.segmented.success>li>a:hover,.button-group.segmented.success>li>button:hover,.button-group.segmented.success>li>label:hover{background:rgba(67,172,106,.25);color:#43AC6A}.button-group.segmented.success>li>a .iconic *,.button-group.segmented.success>li>a .iconic .iconic-property-accent,.button-group.segmented.success>li>button .iconic *,.button-group.segmented.success>li>button .iconic .iconic-property-accent,.button-group.segmented.success>li>label .iconic *,.button-group.segmented.success>li>label .iconic .iconic-property-accent{fill:#43AC6A;stroke:#43AC6A}.button-group.segmented.success>li.is-active>a,.button-group.segmented.success>li.is-active>a:hover,.button-group.segmented.success>li>input:checked+label,.button-group.segmented.success>li>input:checked+label:hover{background:#43AC6A;color:#fff}.button-group.segmented.success>li.is-active>a .iconic *,.button-group.segmented.success>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.success>li>input:checked+label .iconic *,.button-group.segmented.success>li>input:checked+label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.segmented.warning{border-color:#F08A24}.button-group.segmented.warning>li>a,.button-group.segmented.warning>li>button,.button-group.segmented.warning>li>label{border-color:#F08A24;color:#F08A24}.button-group.segmented.warning>li>a:hover,.button-group.segmented.warning>li>button:hover,.button-group.segmented.warning>li>label:hover{background:rgba(240,138,36,.25);color:#F08A24}.button-group.segmented.warning>li>a .iconic *,.button-group.segmented.warning>li>a .iconic .iconic-property-accent,.button-group.segmented.warning>li>button .iconic *,.button-group.segmented.warning>li>button .iconic .iconic-property-accent,.button-group.segmented.warning>li>label .iconic *,.button-group.segmented.warning>li>label .iconic .iconic-property-accent{fill:#F08A24;stroke:#F08A24}.button-group.segmented.warning>li.is-active>a,.button-group.segmented.warning>li.is-active>a:hover,.button-group.segmented.warning>li>input:checked+label,.button-group.segmented.warning>li>input:checked+label:hover{background:#F08A24;color:#fff}.button-group.segmented.warning>li.is-active>a .iconic *,.button-group.segmented.warning>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.warning>li>input:checked+label .iconic *,.button-group.segmented.warning>li>input:checked+label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.segmented.alert{border-color:#F04124}.button-group.segmented.alert>li>a,.button-group.segmented.alert>li>button,.button-group.segmented.alert>li>label{border-color:#F04124;color:#F04124}.button-group.segmented.alert>li>a:hover,.button-group.segmented.alert>li>button:hover,.button-group.segmented.alert>li>label:hover{background:rgba(240,65,36,.25);color:#F04124}.button-group.segmented.alert>li>a .iconic *,.button-group.segmented.alert>li>a .iconic .iconic-property-accent,.button-group.segmented.alert>li>button .iconic *,.button-group.segmented.alert>li>button .iconic .iconic-property-accent,.button-group.segmented.alert>li>label .iconic *,.button-group.segmented.alert>li>label .iconic .iconic-property-accent{fill:#F04124;stroke:#F04124}.button-group.segmented.alert>li.is-active>a .iconic *,.button-group.segmented.alert>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.alert>li>input:checked+label .iconic *,.button-group.segmented.alert>li>input:checked+label .iconic .iconic-property-accent,.title-bar.dark .iconic *,.title-bar.dark .iconic .iconic-property-accent,.title-bar.primary .iconic *,.title-bar.primary .iconic .iconic-property-accent{stroke:#fff;fill:#fff}.button-group.segmented.alert>li.is-active>a,.button-group.segmented.alert>li.is-active>a:hover,.button-group.segmented.alert>li>input:checked+label,.button-group.segmented.alert>li>input:checked+label:hover{background:#F04124;color:#fff}.button-group.tiny{font-size:.63rem}.button-group.small{font-size:.72rem}.button-group.large{font-size:1.17rem}.button-group.expand{display:flex}.button-group.expand>li{flex:1}.button-group.expand>li>a,.button-group.expand>li>button,.button-group.expand>li>label{display:block;width:100%;margin-left:0;margin-right:0}.card{border:1px solid #ededed;margin-bottom:.5rem;background:#fff;color:#000;border-radius:4px}.card h1,.card h2,.card h3,.card h4,.card h5,.card h6{color:inherit}.card ul{margin-bottom:0}.card img{width:100%}.card.primary{border:0;margin-bottom:.5rem;background:#00558b;color:#fff;border-radius:4px}.card.primary h1,.card.primary h2,.card.primary h3,.card.primary h4,.card.primary h5,.card.primary h6{color:inherit}.card.primary ul{margin-bottom:0}.card.primary img{width:100%}.card.primary .card-divider{background:#0065a5;padding:1rem}.card.success{border:0;margin-bottom:.5rem;background:#43AC6A;color:#fff;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.card.alert,.card.warning{border:0;box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.card.success h1,.card.success h2,.card.success h3,.card.success h4,.card.success h5,.card.success h6{color:inherit}.card.success ul{margin-bottom:0}.card.success img{width:100%}.card.success .card-divider{background:#4ab873;padding:1rem}.card.warning{margin-bottom:.5rem;background:#F08A24;color:#fff;border-radius:4px}.card.warning h1,.card.warning h2,.card.warning h3,.card.warning h4,.card.warning h5,.card.warning h6{color:inherit}.card.warning ul{margin-bottom:0}.card.warning img{width:100%}.card.warning .card-divider{background:#f19233;padding:1rem}.card.alert{margin-bottom:.5rem;background:#F04124;color:#fff;border-radius:4px}.card.alert h1,.card.alert h2,.card.alert h3,.card.alert h4,.card.alert h5,.card.alert h6{color:inherit}.card.alert ul{margin-bottom:0}.card.alert img{width:100%}.card.alert .card-divider{background:#f14e33;padding:1rem}.card.dark{border:0;margin-bottom:.5rem;background:#232323;color:#fff;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.card.dark h1,.card.dark h2,.card.dark h3,.card.dark h4,.card.dark h5,.card.dark h6{color:inherit}.card.dark ul{margin-bottom:0}.card.dark img{width:100%}.card.dark .card-divider{background:#323232;padding:1rem}.card-divider{background:#ededed;padding:1rem}.card-section{padding:1rem}.close-button{position:absolute;color:#999;top:1rem;right:1rem;font-size:2em;line-height:.5;cursor:pointer}.close-button:hover{color:#333}.thumbnail,ul.thumbnails>li img{padding:.5rem;box-shadow:0 3px 15px rgba(0,0,0,.25)}ul.thumbnails>li{margin-bottom:1rem}ul.thumbnails>li a{display:block}input[type=number],input[type=search],input[type=text],input[type=password],input[type=date],input[type=datetime],input[type=datetime-local],input[type=month],input[type=week],input[type=email],input[type=tel],input[type=time],input[type=url],input[type=color],textarea{-webkit-appearance:none;-moz-appearance:none;display:block;width:100%;height:2.4rem;padding:.5rem;margin:0 0 1rem;border:1px solid #ccc;border-radius:0;background:#fff;color:#000;font-size:1rem;-webkit-font-smoothing:antialiased;vertical-align:middle}label>.inline-label,label>input,label>input[type=number],label>input[type=search],label>input[type=text],label>input[type=password],label>input[type=date],label>input[type=datetime],label>input[type=datetime-local],label>input[type=month],label>input[type=week],label>input[type=email],label>input[type=tel],label>input[type=time],label>input[type=url],label>input[type=color],label>textarea{margin-top:.5rem}input[type=number]:hover,input[type=search]:hover,input[type=text]:hover,input[type=password]:hover,input[type=date]:hover,input[type=datetime]:hover,input[type=datetime-local]:hover,input[type=month]:hover,input[type=week]:hover,input[type=email]:hover,input[type=tel]:hover,input[type=time]:hover,input[type=url]:hover,input[type=color]:hover,textarea:hover{border:1px solid #bbb;background:#fff;color:#000}input[type=number]:focus,input[type=search]:focus,input[type=text]:focus,input[type=password]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=month]:focus,input[type=week]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=color]:focus,textarea:focus{outline:0;border:1px solid #999;background:#fff;color:#000}fieldset[disabled] input,input.disabled,input[disabled],input[readonly]{cursor:not-allowed}fieldset[disabled] input,fieldset[disabled] input:hover,input.disabled,input.disabled:hover,input[disabled],input[disabled]:hover,input[readonly],input[readonly]:hover{background-color:#f2f2f2}label{display:block;font-size:.9rem;margin-bottom:.5rem;color:#333}input[type=checkbox],input[type=radio]{width:1rem;height:1rem}label>input[type=checkbox],label>input[type=radio]{margin-right:.25rem}input[type=checkbox]+label,input[type=radio]+label{display:inline-block;margin-left:.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}.inline-label{display:flex;flex-flow:row nowrap;align-items:stretch;margin-bottom:1rem}.inline-label>input,.inline-label>select{flex:1;margin:0}.inline-label>.form-label{flex:0 0 auto;background:#eee;color:#333;border:1px solid #ccc;padding:0 .5rem;display:flex;align-items:center}.inline-label>.form-label:first-child{border-right:0}.inline-label>.form-label:last-child{border-left:0}.inline-label>a,.inline-label>button,.inline-label>input[type=button],.inline-label>input[type=submit]{flex:0 0 auto;display:flex;align-items:center;padding-top:0;padding-bottom:0;margin:0;border-radius:0}textarea{height:auto;width:100%;min-height:50px}select{display:block;width:100%;height:2.4rem;padding:.5rem 1.625rem .5rem .5rem;margin:0 0 1rem;font-size:1rem;color:#000;border-radius:0;border:1px solid #ccc;background:url('data:image/svg+xml;utf8,') right 10px center no-repeat #fafafa;background-size:8px 8px}input[type=range],meter,progress{-webkit-appearance:none;-moz-appearance:none;display:block;border:0}select:hover{background-color:#f0f0f0}input[type=range]:focus,select:focus{outline:0}select::-ms-expand{display:none}input[type=range]{width:100%;height:auto;cursor:pointer;margin-top:.25rem;margin-bottom:.25rem;line-height:1}input[type=range]::-webkit-slider-runnable-track{height:1rem;background:#ddd}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#00558b;width:1.5rem;height:1.5rem;margin-top:-.25rem}input[type=range]::-moz-range-track{-moz-appearance:none;height:1rem;background:#ccc}input[type=range]::-moz-range-thumb{-moz-appearance:none;background:#00558b;width:1.5rem;height:1.5rem;margin-top:-.25rem}input[type=range]::-ms-track{height:1rem;background:#ddd;color:transparent;border:0;overflow:visible;border-top:.25rem solid #fff;border-bottom:.25rem solid #fff}input[type=range]::-ms-thumb{background:#00558b;width:1.5rem;height:1.5rem;border:0}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{background:#ddd}output{line-height:1.5rem;vertical-align:middle;margin-left:.5em}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;background:#00558b}meter,progress{width:100%;height:1.5rem;margin-bottom:1rem;background:#ccc}progress::-webkit-progress-bar{background:#ccc}progress::-webkit-progress-value{background:#00558b}progress::-moz-progress-bar{background:#00558b}progress.high::-webkit-progress-value{background:#43AC6A}progress.high::-moz-progress-bar{background:#43AC6A}progress.medium::-webkit-progress-value{background:#e7cf00}progress.medium::-moz-progress-bar{background:#e7cf00}progress.low::-webkit-progress-value{background:#F04124}progress.low::-moz-progress-bar{background:#F04124}meter{background:#ccc}meter::-webkit-meter-bar{background:#ccc}meter::-webkit-meter-optimum-value{background:#43AC6A}meter::-webkit-meter-suboptimum-value{background:#e7cf00}meter::-webkit-meter-even-less-good-value{background:#F04124}meter::-moz-meter-bar{background:#00558b}meter:-moz-meter-optimum::-moz-meter-bar{background:#43AC6A}meter:-moz-meter-sub-optimum::-moz-meter-bar{background:#e7cf00}meter:-moz-meter-sub-sub-optimum::-moz-meter-bar{background:#F04124}.panel{position:absolute;z-index:100;overflow-y:auto;display:none;padding:0;background:#fff}.is-active.panel{display:block}.panel-top{top:0;left:0;width:100%;height:300px}.panel-top.is-active{box-shadow:0 3px 10px rgba(0,0,0,.25)}.panel-right{top:0;right:0;height:100%;width:100%}@media only screen and (min-width:18.75em){.panel-right{width:300px}}.panel-right.is-active{box-shadow:-3px 0 10px rgba(0,0,0,.25)}.panel-bottom{bottom:0;left:0;width:100%;height:300px}.panel-bottom.is-active{box-shadow:2px -3px 10px rgba(0,0,0,.25)}.panel-left{top:0;left:0;height:100%;width:100%}@media only screen and (min-width:18.75em){.panel-left{width:300px}}.panel-left.is-active{box-shadow:3px 0 10px rgba(0,0,0,.25)}.small-grid-block.panel,.small-grid-content.panel{transform:none;width:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}.panel-fixed{position:fixed}.small-vertical.grid-block,.small-vertical.grid-frame,.small-vertical.large-grid-block,.small-vertical.medium-grid-block,.small-vertical.small-grid-block,.vertical.grid-block,.vertical.grid-frame,.vertical.large-grid-block,.vertical.medium-grid-block,.vertical.small-grid-block{flex-flow:column nowrap;align-items:stretch}.small-horizontal.grid-block,.small-horizontal.grid-frame,.small-horizontal.large-grid-block,.small-horizontal.medium-grid-block,.small-horizontal.small-grid-block{flex-flow:row wrap}@media only screen and (min-width:40em){.medium-vertical.grid-block,.medium-vertical.grid-frame,.medium-vertical.large-grid-block,.medium-vertical.medium-grid-block,.medium-vertical.small-grid-block{flex-flow:column nowrap;align-items:stretch}.medium-horizontal.grid-block,.medium-horizontal.grid-frame,.medium-horizontal.large-grid-block,.medium-horizontal.medium-grid-block,.medium-horizontal.small-grid-block{flex-flow:row wrap}}@media only screen and (min-width:75em){.large-vertical.grid-block,.large-vertical.grid-frame,.large-vertical.large-grid-block,.large-vertical.medium-grid-block,.large-vertical.small-grid-block{flex-flow:column nowrap;align-items:stretch}.large-horizontal.grid-block,.large-horizontal.grid-frame,.large-horizontal.large-grid-block,.large-horizontal.medium-grid-block,.large-horizontal.small-grid-block{flex-flow:row wrap}}.align-right.grid-block,.align-right.grid-frame,.align-right.large-grid-block,.align-right.medium-grid-block,.align-right.small-grid-block{justify-content:flex-end}.align-center.grid-block,.align-center.grid-frame,.align-center.large-grid-block,.align-center.medium-grid-block,.align-center.small-grid-block{justify-content:center}.align-justify.grid-block,.align-justify.grid-frame,.align-justify.large-grid-block,.align-justify.medium-grid-block,.align-justify.small-grid-block{justify-content:space-between}.align-spaced.grid-block,.align-spaced.grid-frame,.align-spaced.large-grid-block,.align-spaced.medium-grid-block,.align-spaced.small-grid-block{justify-content:space-around}.wrap.grid-block,.wrap.grid-frame,.wrap.large-grid-block,.wrap.medium-grid-block,.wrap.small-grid-block{flex-wrap:wrap;align-items:flex-start}.shrink.grid-block,.shrink.grid-content,.shrink.large-grid-block,.shrink.large-grid-content,.shrink.medium-grid-block,.shrink.medium-grid-content,.shrink.small-grid-block,.shrink.small-grid-content{flex:0 0 auto}.grid-block,.grid-frame{display:flex;overflow:hidden;flex:1 1 auto;order:0;backface-visibility:hidden}.noscroll.grid-block,.noscroll.grid-content,.noscroll.large-grid-block,.noscroll.large-grid-content,.noscroll.medium-grid-block,.noscroll.medium-grid-content,.noscroll.small-grid-block,.noscroll.small-grid-content{overflow:hidden}.grid-frame{height:100vh;position:relative;flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start}.grid-block,.small-grid-block,.small-grid-block.panel,.small-grid-content.panel{height:auto;position:relative}.grid-block{flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;flex:1 1 auto}.grid-content.collapse{padding:0}.grid-content .grid-block{margin-left:-1rem;margin-right:-1rem;flex-wrap:wrap;overflow:visible}.grid-content .grid-block.nowrap{flex-wrap:nowrap;align-items:stretch}.grid-content .grid-block .grid-content{overflow:visible}.grid-container{max-width:56.25rem;margin:0 auto}.grid-container.contain-left{max-width:56.25rem;margin:0 auto 0 0}.grid-container.contain-right{max-width:56.25rem;margin:0 0 0 auto}.small-grid-block{display:flex;overflow:hidden;backface-visibility:hidden;flex:1 1 auto;flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;order:0;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.small-grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;flex:1 1 auto}@media only screen and (min-width:40em){.medium-grid-block{display:flex;position:relative;overflow:hidden;backface-visibility:hidden;flex:1 1 auto;flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;order:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-grid-block.panel{transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}.medium-grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;flex:1 1 auto}.medium-grid-content.panel{transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}}@media only screen and (min-width:75em){.large-grid-block{display:flex;position:relative;overflow:hidden;backface-visibility:hidden;flex:1 1 auto;flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;order:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-grid-block.panel{transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}.large-grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;flex:1 1 auto}.large-grid-content.panel{transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}}.small-up-1,.small-up-10,.small-up-11,.small-up-12,.small-up-2,.small-up-3,.small-up-4,.small-up-5,.small-up-6,.small-up-8,.small-up-9,.title-bar,.title-bar .center,.title-bar .left,.title-bar .right{overflow:visible}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.small-1{flex:0 0 8.33333%;max-width:8.33333%}.small-order-1{order:1}.small-offset-1{margin-left:8.33333%}.small-up-1{flex-flow:row wrap}.small-up-1>div,.small-up-1>li,.small-up-1>section{padding:0 1rem 1rem;flex:0 0 100%}.small-2{flex:0 0 16.66667%;max-width:16.66667%}.small-order-2{order:2}.small-offset-2{margin-left:16.66667%}.small-up-2{flex-flow:row wrap}.small-up-2>div,.small-up-2>li,.small-up-2>section{padding:0 1rem 1rem;flex:0 0 50%}.small-3{flex:0 0 25%;max-width:25%}.small-order-3{order:3}.small-offset-3{margin-left:25%}.small-up-3{flex-flow:row wrap}.small-up-3>div,.small-up-3>li,.small-up-3>section{padding:0 1rem 1rem;flex:0 0 33.33333%}.small-4{flex:0 0 33.33333%;max-width:33.33333%}.small-order-4{order:4}.small-offset-4{margin-left:33.33333%}.small-up-4{flex-flow:row wrap}.small-up-4>div,.small-up-4>li,.small-up-4>section{padding:0 1rem 1rem;flex:0 0 25%}.small-5{flex:0 0 41.66667%;max-width:41.66667%}.small-order-5{order:5}.small-offset-5{margin-left:41.66667%}.small-up-5{flex-flow:row wrap;list-style-type:none}.small-up-5>div,.small-up-5>li,.small-up-5>section{padding:0 1rem 1rem;flex:0 0 20%}.small-6{flex:0 0 50%;max-width:50%}.small-order-6{order:6}.small-offset-6{margin-left:50%}.small-up-6{flex-flow:row wrap}.small-up-6>div,.small-up-6>li,.small-up-6>section{padding:0 1rem 1rem;flex:0 0 16.66667%}.small-7{flex:0 0 58.33333%;max-width:58.33333%}.small-order-7{order:7}.small-offset-7{margin-left:58.33333%}.small-up-7{flex-flow:row wrap;overflow:visible}.small-up-7>div,.small-up-7>li,.small-up-7>section{padding:0 1rem 1rem;flex:0 0 14.28571%}.small-8{flex:0 0 66.66667%;max-width:66.66667%}.small-order-8{order:8}.small-offset-8{margin-left:66.66667%}.small-up-8{flex-flow:row wrap}.small-up-8>div,.small-up-8>li,.small-up-8>section{padding:0 1rem 1rem;flex:0 0 12.5%}.small-9{flex:0 0 75%;max-width:75%}.small-order-9{order:9}.small-offset-9{margin-left:75%}.small-up-9{flex-flow:row wrap}.small-up-9>div,.small-up-9>li,.small-up-9>section{padding:0 1rem 1rem;flex:0 0 11.11111%}.small-10{flex:0 0 83.33333%;max-width:83.33333%}.small-order-10{order:10}.small-offset-10{margin-left:83.33333%}.small-up-10{flex-flow:row wrap}.small-up-10>div,.small-up-10>li,.small-up-10>section{padding:0 1rem 1rem;flex:0 0 10%}.small-11{flex:0 0 91.66667%;max-width:91.66667%}.small-order-11{order:11}.small-offset-11{margin-left:91.66667%}.small-up-11{flex-flow:row wrap}.small-up-11>div,.small-up-11>li,.small-up-11>section{padding:0 1rem 1rem;flex:0 0 9.09091%}.small-12{flex:0 0 100%;max-width:100%}.small-order-12{order:12}.small-offset-12{margin-left:100%}.small-up-12{flex-flow:row wrap}.small-up-12>div,.small-up-12>li,.small-up-12>section{padding:0 1rem 1rem;flex:0 0 8.33333%}@media only screen and (min-width:40em){.medium-1{flex:0 0 8.33333%;max-width:8.33333%}.medium-order-1{order:1}.medium-offset-1{margin-left:8.33333%}.medium-up-1{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-1>div,.medium-up-1>li,.medium-up-1>section{padding:0 1rem 1rem;flex:0 0 100%}.medium-2{flex:0 0 16.66667%;max-width:16.66667%}.medium-order-2{order:2}.medium-offset-2{margin-left:16.66667%}.medium-up-2{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-2>div,.medium-up-2>li,.medium-up-2>section{padding:0 1rem 1rem;flex:0 0 50%}.medium-3{flex:0 0 25%;max-width:25%}.medium-order-3{order:3}.medium-offset-3{margin-left:25%}.medium-up-3{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-3>div,.medium-up-3>li,.medium-up-3>section{padding:0 1rem 1rem;flex:0 0 33.33333%}.medium-4{flex:0 0 33.33333%;max-width:33.33333%}.medium-order-4{order:4}.medium-offset-4{margin-left:33.33333%}.medium-up-4{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-4>div,.medium-up-4>li,.medium-up-4>section{padding:0 1rem 1rem;flex:0 0 25%}.medium-5{flex:0 0 41.66667%;max-width:41.66667%}.medium-order-5{order:5}.medium-offset-5{margin-left:41.66667%}.medium-up-5{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-5>div,.medium-up-5>li,.medium-up-5>section{padding:0 1rem 1rem;flex:0 0 20%}.medium-6{flex:0 0 50%;max-width:50%}.medium-order-6{order:6}.medium-offset-6{margin-left:50%}.medium-up-6{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-6>div,.medium-up-6>li,.medium-up-6>section{padding:0 1rem 1rem;flex:0 0 16.66667%}.medium-7{flex:0 0 58.33333%;max-width:58.33333%}.medium-order-7{order:7}.medium-offset-7{margin-left:58.33333%}.medium-up-7{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-7>div,.medium-up-7>li,.medium-up-7>section{padding:0 1rem 1rem;flex:0 0 14.28571%}.medium-8{flex:0 0 66.66667%;max-width:66.66667%}.medium-order-8{order:8}.medium-offset-8{margin-left:66.66667%}.medium-up-8{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-8>div,.medium-up-8>li,.medium-up-8>section{padding:0 1rem 1rem;flex:0 0 12.5%}.medium-9{flex:0 0 75%;max-width:75%}.medium-order-9{order:9}.medium-offset-9{margin-left:75%}.medium-up-9{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-9>div,.medium-up-9>li,.medium-up-9>section{padding:0 1rem 1rem;flex:0 0 11.11111%}.medium-10{flex:0 0 83.33333%;max-width:83.33333%}.medium-order-10{order:10}.medium-offset-10{margin-left:83.33333%}.medium-up-10{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-10>div,.medium-up-10>li,.medium-up-10>section{padding:0 1rem 1rem;flex:0 0 10%}.medium-11{flex:0 0 91.66667%;max-width:91.66667%}.medium-order-11{order:11}.medium-offset-11{margin-left:91.66667%}.medium-up-11{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-11>div,.medium-up-11>li,.medium-up-11>section{padding:0 1rem 1rem;flex:0 0 9.09091%}.medium-12{flex:0 0 100%;max-width:100%}.medium-order-12{order:12}.medium-offset-12{margin-left:100%}.medium-up-12{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-12>div,.medium-up-12>li,.medium-up-12>section{padding:0 1rem 1rem;flex:0 0 8.33333%}}@media only screen and (min-width:75em){.large-1{flex:0 0 8.33333%;max-width:8.33333%}.large-order-1{order:1}.large-offset-1{margin-left:8.33333%}.large-up-1{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-1>div,.large-up-1>li,.large-up-1>section{padding:0 1rem 1rem;flex:0 0 100%}.large-2{flex:0 0 16.66667%;max-width:16.66667%}.large-order-2{order:2}.large-offset-2{margin-left:16.66667%}.large-up-2{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-2>div,.large-up-2>li,.large-up-2>section{padding:0 1rem 1rem;flex:0 0 50%}.large-3{flex:0 0 25%;max-width:25%}.large-order-3{order:3}.large-offset-3{margin-left:25%}.large-up-3{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-3>div,.large-up-3>li,.large-up-3>section{padding:0 1rem 1rem;flex:0 0 33.33333%}.large-4{flex:0 0 33.33333%;max-width:33.33333%}.large-order-4{order:4}.large-offset-4{margin-left:33.33333%}.large-up-4{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-4>div,.large-up-4>li,.large-up-4>section{padding:0 1rem 1rem;flex:0 0 25%}.large-5{flex:0 0 41.66667%;max-width:41.66667%}.large-order-5{order:5}.large-offset-5{margin-left:41.66667%}.large-up-5{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-5>div,.large-up-5>li,.large-up-5>section{padding:0 1rem 1rem;flex:0 0 20%}.large-6{flex:0 0 50%;max-width:50%}.large-order-6{order:6}.large-offset-6{margin-left:50%}.large-up-6{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-6>div,.large-up-6>li,.large-up-6>section{padding:0 1rem 1rem;flex:0 0 16.66667%}.large-7{flex:0 0 58.33333%;max-width:58.33333%}.large-order-7{order:7}.large-offset-7{margin-left:58.33333%}.large-up-7{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-7>div,.large-up-7>li,.large-up-7>section{padding:0 1rem 1rem;flex:0 0 14.28571%}.large-8{flex:0 0 66.66667%;max-width:66.66667%}.large-order-8{order:8}.large-offset-8{margin-left:66.66667%}.large-up-8{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-8>div,.large-up-8>li,.large-up-8>section{padding:0 1rem 1rem;flex:0 0 12.5%}.large-9{flex:0 0 75%;max-width:75%}.large-order-9{order:9}.large-offset-9{margin-left:75%}.large-up-9{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-9>div,.large-up-9>li,.large-up-9>section{padding:0 1rem 1rem;flex:0 0 11.11111%}.large-10{flex:0 0 83.33333%;max-width:83.33333%}.large-order-10{order:10}.large-offset-10{margin-left:83.33333%}.large-up-10{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-10>div,.large-up-10>li,.large-up-10>section{padding:0 1rem 1rem;flex:0 0 10%}.large-11{flex:0 0 91.66667%;max-width:91.66667%}.large-order-11{order:11}.large-offset-11{margin-left:91.66667%}.large-up-11{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-11>div,.large-up-11>li,.large-up-11>section{padding:0 1rem 1rem;flex:0 0 9.09091%}.large-12{flex:0 0 100%;max-width:100%}.large-order-12{order:12}.large-offset-12{margin-left:100%}.large-up-12{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-12>div,.large-up-12>li,.large-up-12>section{padding:0 1rem 1rem;flex:0 0 8.33333%}}.title-bar,.title-bar.dark,.title-bar.primary{padding:1rem;border-bottom:1px solid #ccc}.grid-content .modal .grid-block{flex-wrap:nowrap}.title-bar{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-start;background:#eee;color:#000}.title-bar .center,.title-bar .left,.title-bar .right{display:block;white-space:nowrap}.title-bar .center:first-child:last-child,.title-bar .left:first-child:last-child,.title-bar .right:first-child:last-child{flex:1;margin:0}.title-bar .left{order:1;flex:0 0 25%}.title-bar .center{order:2;flex:0 0 50%;text-align:center}.title-bar .right{order:3;flex:0 0 25%;text-align:right}.title-bar .left:first-child,.title-bar .left:first-child+.right:last-child{flex:1 1 auto}.title-bar .center:first-child:not(:last-child){margin-left:25%}.title-bar .center+.left{margin-right:-25%}.title-bar.primary{background:#00558b;color:#fff}.title-bar.primary a,.title-bar.primary a:hover{color:#fff}.title-bar.dark{background:#232323;color:#fff}.label,.label.primary{background:#00558b;border-radius:0;color:#fff}.title-bar.dark a,.title-bar.dark a:hover{color:#fff}.title-bar-bottom{border-bottom:0;border-top:1px solid #ccc}.label{line-height:1;white-space:nowrap;display:inline-block;cursor:default;font-size:.8rem;padding:.33333rem .5rem}.label.success{background:#43AC6A;border-radius:0;color:#fff}.label.warning{background:#F08A24;border-radius:0;color:#fff}.label.alert{background:#F04124;border-radius:0;color:#fff}.label.dark{background:#232323;border-radius:0;color:#fff}.badge{align-items:center;justify-content:center;display:inline-flex;border-radius:1000px;font-size:.8em;width:1.5rem;height:1.5rem;background:#00558b;color:#fff}.badge.secondary{background:#f1f1f1;color:#000}.badge.primary{background:#00558b;color:#fff}.badge.success{background:#43AC6A;color:#fff}.badge.warning{background:#F08A24;color:#fff}.badge.alert{background:#F04124;color:#fff}.badge.dark{background:#232323;color:#fff}.inline-list{text-align:left}.inline-list dd,.inline-list dt,.inline-list li{display:inline-block;margin-left:-2px;margin-right:-2px}.inline-list li{margin-right:1rem;margin-left:0}.menu-bar{display:flex;align-items:stretch;margin:0;background:#fff}.menu-bar>li{flex:1 0 auto;align-items:center}.menu-bar>li>a{display:flex;align-items:center;padding:1rem;font-size:1rem;line-height:1;color:#000}.menu-bar.label-corner>li>a,.menu-bar.label-side>li>a{padding-right:3.2rem}.menu-bar .is-active>a,.menu-bar>li>a:hover{background:#ededed;color:#000}.menu-bar .iconic *,.menu-bar .iconic .iconic-property-accent{fill:#000;stroke:#000}.menu-bar,.menu-bar.horizontal{overflow-x:hidden;flex-flow:row nowrap}.menu-bar.horizontal>li>a,.menu-bar.small-horizontal>li>a,.menu-bar.vertical,.menu-bar>li>a{flex-flow:column nowrap}.menu-bar.vertical{}.menu-bar.vertical>li>a{flex-flow:row nowrap}.menu-bar.condense>li{flex:0 0 auto}.menu-bar.align-right{justify-content:flex-end}.menu-bar.align-center{justify-content:center}.menu-bar.align-justify{justify-content:space-between}.menu-bar.align-spaced{justify-content:space-around}.menu-bar.small-condense li,.menu-group .menu-bar>li{flex:0 0 auto}.menu-bar.small-expand li{flex:1 0 auto}.menu-bar.small-align-left{justify-content:flex-start}.menu-bar.small-align-right{justify-content:flex-end}.menu-bar.small-align-center{justify-content:center}.menu-bar.small-align-justify{justify-content:space-between}.menu-bar.small-align-spaced{justify-content:space-around}@media only screen and (min-width:40em){.menu-bar.medium-condense li{flex:0 0 auto}.menu-bar.medium-expand li{flex:1 0 auto}.menu-bar.medium-align-left{justify-content:flex-start}.menu-bar.medium-align-right{justify-content:flex-end}.menu-bar.medium-align-center{justify-content:center}.menu-bar.medium-align-justify{justify-content:space-between}.menu-bar.medium-align-spaced{justify-content:space-around}}@media only screen and (min-width:75em){.menu-bar.large-condense li{flex:0 0 auto}.menu-bar.large-expand li{flex:1 0 auto}.menu-bar.large-align-left{justify-content:flex-start}.menu-bar.large-align-right{justify-content:flex-end}.menu-bar.large-align-center{justify-content:center}.menu-bar.large-align-justify{justify-content:space-between}.menu-bar.large-align-spaced{justify-content:space-around}}.menu-bar.small-horizontal{overflow-x:hidden;flex-flow:row nowrap}.menu-bar.small-vertical{flex-flow:column nowrap}.menu-bar.small-vertical>li>a{flex-flow:row nowrap}@media only screen and (min-width:40em){.menu-bar.medium-horizontal{overflow-x:hidden;flex-flow:row nowrap}.menu-bar.medium-horizontal>li>a{flex-flow:column nowrap}.menu-bar.medium-vertical{flex-flow:column nowrap}.menu-bar.medium-vertical>li>a{flex-flow:row nowrap}}@media only screen and (min-width:75em){.menu-bar.large-horizontal{overflow-x:hidden;flex-flow:row nowrap}.menu-bar.large-horizontal>li>a{flex-flow:column nowrap}.menu-bar.large-vertical{flex-flow:column nowrap}.menu-bar.large-vertical>li>a{flex-flow:row nowrap}}.menu-bar.icon-top>li>.iconic,.menu-bar.icon-top>li>img,.menu-bar>li>.iconic,.menu-bar>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-top>li>a,.menu-bar>li>a{flex-flow:column nowrap}.menu-bar.icon-top>li>a>.iconic,.menu-bar.icon-top>li>a>img,.menu-bar>li>a>.iconic,.menu-bar>li>a>img{margin:0 0 1rem}.menu-bar.icon-right>li>.iconic,.menu-bar.icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-right>li>a{flex-flow:row-reverse nowrap}.menu-bar.icon-right>li>a>.iconic,.menu-bar.icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.icon-bottom>li>.iconic,.menu-bar.icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-bottom>li>a{flex-flow:column-reverse nowrap}.menu-bar.icon-bottom>li>a>.iconic,.menu-bar.icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.icon-left>li>.iconic,.menu-bar.icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-left>li>a{flex-flow:row nowrap;align-items:center}.menu-bar.icon-left>li>a>.iconic,.menu-bar.icon-left>li>a>img{margin:0 1rem 0 0}.menu-bar.small-icon-top>li>.iconic,.menu-bar.small-icon-top>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-top>li>a{flex-flow:column nowrap}.menu-bar.small-icon-top>li>a>.iconic,.menu-bar.small-icon-top>li>a>img{margin:0 0 1rem}.menu-bar.small-icon-right>li>.iconic,.menu-bar.small-icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-right>li>a{flex-flow:row-reverse nowrap}.menu-bar.small-icon-right>li>a>.iconic,.menu-bar.small-icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.small-icon-bottom>li>.iconic,.menu-bar.small-icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-bottom>li>a{flex-flow:column-reverse nowrap}.menu-bar.small-icon-bottom>li>a>.iconic,.menu-bar.small-icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.small-icon-left>li>.iconic,.menu-bar.small-icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-left>li>a{flex-flow:row nowrap;align-items:center}.menu-bar.small-icon-left>li>a>.iconic,.menu-bar.small-icon-left>li>a>img{margin:0 1rem 0 0}@media only screen and (min-width:40em){.menu-bar.medium-icon-top>li>.iconic,.menu-bar.medium-icon-top>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-top>li>a{flex-flow:column nowrap}.menu-bar.medium-icon-top>li>a>.iconic,.menu-bar.medium-icon-top>li>a>img{margin:0 0 1rem}.menu-bar.medium-icon-right>li>.iconic,.menu-bar.medium-icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-right>li>a{flex-flow:row-reverse nowrap}.menu-bar.medium-icon-right>li>a>.iconic,.menu-bar.medium-icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.medium-icon-bottom>li>.iconic,.menu-bar.medium-icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-bottom>li>a{flex-flow:column-reverse nowrap}.menu-bar.medium-icon-bottom>li>a>.iconic,.menu-bar.medium-icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.medium-icon-left>li>.iconic,.menu-bar.medium-icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-left>li>a{flex-flow:row nowrap;align-items:center}.menu-bar.medium-icon-left>li>a>.iconic,.menu-bar.medium-icon-left>li>a>img{margin:0 1rem 0 0}}@media only screen and (min-width:75em){.menu-bar.large-icon-top>li>.iconic,.menu-bar.large-icon-top>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-top>li>a{flex-flow:column nowrap}.menu-bar.large-icon-top>li>a>.iconic,.menu-bar.large-icon-top>li>a>img{margin:0 0 1rem}.menu-bar.large-icon-right>li>.iconic,.menu-bar.large-icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-right>li>a{flex-flow:row-reverse nowrap}.menu-bar.large-icon-right>li>a>.iconic,.menu-bar.large-icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.large-icon-bottom>li>.iconic,.menu-bar.large-icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-bottom>li>a{flex-flow:column-reverse nowrap}.menu-bar.large-icon-bottom>li>a>.iconic,.menu-bar.large-icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.large-icon-left>li>.iconic,.menu-bar.large-icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-left>li>a{flex-flow:row nowrap;align-items:center}.menu-bar.large-icon-left>li>a>.iconic,.menu-bar.large-icon-left>li>a>img{margin:0 1rem 0 0}}.menu-bar.label-corner .menu-bar-label,.menu-bar.label-side .menu-bar-label{display:block;font-size:.9rem;width:1.2rem;height:1.2rem;line-height:1.2rem;text-align:center;border-radius:1000px;background:red;right:1rem;color:#fff;pointer-events:none}.menu-group .menu-bar,.modal .grid-block,.modal .grid-content{margin:0}.menu-bar.label-side>li{position:relative}.menu-bar.label-side .menu-bar-label{position:absolute;top:50%;transform:translateY(-50%)}.menu-bar.label-corner>li{position:relative}.menu-bar.label-corner .menu-bar-label{position:absolute;top:1rem}.menu-bar.primary{background:#00558b}.menu-bar.primary>li>a{color:#fff}.menu-bar.primary .is-active>a,.menu-bar.primary>li>a:hover{background:#0065a5;color:#fff}.menu-bar.primary .iconic *,.menu-bar.primary .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.menu-bar.dark{background:#232323}.menu-bar.dark>li>a{color:#fff}.menu-bar.dark .is-active>a,.menu-bar.dark>li>a:hover{background:#323232;color:#fff}.menu-bar.dark .iconic *,.menu-bar.dark .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.menu-bar>li.title{padding:1rem;cursor:default}.switch>label,.tabs .tab-item,a[ui-sref]{cursor:pointer}.menu-group{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}@media only screen and (min-width:40em){.menu-group{flex-wrap:nowrap}}.menu-group>.menu-group-left,.menu-group>.menu-group-right{flex:1 1 100%}@media only screen and (min-width:40em){.menu-group>.menu-group-left,.menu-group>.menu-group-right{flex:0 0 auto}}.menu-group.primary{background-color:#00558b}.menu-group.primary .menu-bar{background:#00558b}.menu-group.primary .menu-bar>li>a{color:#fff}.menu-group.primary .menu-bar .is-active>a,.menu-group.primary .menu-bar>li>a:hover{background:#0065a5;color:#fff}.menu-group.primary .menu-bar .iconic *,.menu-group.primary .menu-bar .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.menu-group.dark{background-color:#232323}.menu-group.dark .menu-bar{background:#232323}.menu-group.dark .menu-bar>li>a{color:#fff}.menu-group.dark .menu-bar .is-active>a,.menu-group.dark .menu-bar>li>a:hover{background:#323232;color:#fff}.menu-group.dark .menu-bar .iconic *,.menu-group.dark .menu-bar .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.modal{position:relative;z-index:1001;background:#fff;flex:0 0 auto;width:100%;height:100vh;max-height:100%;overflow:hidden;padding:1rem;max-width:600px;border-radius:0}@media only screen and (min-width:40em){.modal{height:auto;max-width:600px}}.modal .close-button,.modal [fa-close]{z-index:1001}.tiny>.modal{max-width:300px}.small>.modal{max-width:500px}.large>.modal{max-width:800px}.dialog>.modal{height:auto}.collapse>.modal{padding:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:none;background-color:rgba(51,51,51,.7);align-items:center;justify-content:center}.modal-overlay.is-active{display:flex}@keyframes shake{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{transform:translateX(7%)}15%,25%,35%,45%,5%,55%,65%,75%,85%,95%{transform:translateX(-7%)}100%{transform:translateX(0)}}@keyframes spin-cw{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin-ccw{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}@keyframes wiggle{40%,50%,60%{transform:rotate(7deg)}35%,45%,55%,65%{transform:rotate(-7deg)}0%,100%,30%,70%{transform:rotate(0)}}.slideInDown.ng-enter,.slideInDown.ng-hide-remove{backface-visibility:hidden;transform:translateY(-100%)}.slideInDown.ng-enter.ng-enter-active,.slideInDown.ng-hide-remove.ng-hide-remove-active{transform:translateX(0) translateY(0)}.slideInLeft.ng-enter,.slideInLeft.ng-hide-remove{backface-visibility:hidden;transform:translateX(100%)}.slideInLeft.ng-enter.ng-enter-active,.slideInLeft.ng-hide-remove.ng-hide-remove-active{transform:translateX(0) translateY(0)}.slideInUp.ng-enter,.slideInUp.ng-hide-remove{backface-visibility:hidden;transform:translateY(100%)}.slideInUp.ng-enter.ng-enter-active,.slideInUp.ng-hide-remove.ng-hide-remove-active{transform:translateX(0) translateY(0)}.slideInRight.ng-enter,.slideInRight.ng-hide-remove{backface-visibility:hidden;transform:translateX(-100%)}.slideInRight.ng-enter.ng-enter-active,.slideInRight.ng-hide-remove.ng-hide-remove-active{transform:translateX(0) translateY(0)}.slideOutBottom.ng-hide-add,.slideOutBottom.ng-leave{backface-visibility:hidden;transform:translateX(0) translateY(0)}.slideOutBottom.ng-hide-add.ng-hide-add-active,.slideOutBottom.ng-leave.ng-leave-active{transform:translateY(100%)}.slideOutRight.ng-hide-add,.slideOutRight.ng-leave{backface-visibility:hidden;transform:translateX(0) translateY(0)}.slideOutRight.ng-hide-add.ng-hide-add-active,.slideOutRight.ng-leave.ng-leave-active{transform:translateX(100%)}.slideOutUp.ng-hide-add,.slideOutUp.ng-leave{backface-visibility:hidden;transform:translateX(0) translateY(0)}.slideOutUp.ng-hide-add.ng-hide-add-active,.slideOutUp.ng-leave.ng-leave-active{transform:translateY(-100%)}.slideOutLeft.ng-hide-add,.slideOutLeft.ng-leave{backface-visibility:hidden;transform:translateX(0) translateY(0)}.fadeIn.ng-enter,.fadeIn.ng-hide-remove,.fadeOut.ng-hide-add,.fadeOut.ng-leave{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:opacity}.slideOutLeft.ng-hide-add.ng-hide-add-active,.slideOutLeft.ng-leave.ng-leave-active{transform:translateX(-100%)}.fadeIn.ng-enter,.fadeIn.ng-hide-remove{opacity:0}.fadeIn.ng-enter.ng-enter-active,.fadeIn.ng-hide-remove.ng-hide-remove-active,.fadeOut.ng-hide-add,.fadeOut.ng-leave{opacity:1}.hingeInFromBottom.ng-enter,.hingeInFromBottom.ng-hide-remove,.hingeInFromLeft.ng-enter,.hingeInFromLeft.ng-hide-remove,.hingeInFromMiddleX.ng-enter,.hingeInFromMiddleX.ng-hide-remove,.hingeInFromRight.ng-enter,.hingeInFromRight.ng-hide-remove,.hingeInFromTop.ng-enter,.hingeInFromTop.ng-hide-remove,.hingeOutFromBottom.ng-hide-add,.hingeOutFromBottom.ng-leave,.hingeOutFromLeft.ng-hide-add,.hingeOutFromLeft.ng-leave,.hingeOutFromMiddleX.ng-hide-add,.hingeOutFromMiddleX.ng-leave,.hingeOutFromMiddleY.ng-hide-add,.hingeOutFromMiddleY.ng-leave,.hingeOutFromRight.ng-hide-add,.hingeOutFromRight.ng-leave,.hingeOutFromTop.ng-hide-add,.hingeOutFromTop.ng-leave{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity}.fadeOut.ng-hide-add.ng-hide-add-active,.fadeOut.ng-leave.ng-leave-active{opacity:0}.hingeInFromTop.ng-enter,.hingeInFromTop.ng-hide-remove{transform:perspective(2000px) rotateX(-90deg);transform-origin:top;opacity:0}.hingeInFromTop.ng-enter.ng-enter-active,.hingeInFromTop.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromRight.ng-enter,.hingeInFromRight.ng-hide-remove{transform:perspective(2000px) rotateY(-90deg);transform-origin:right;opacity:0}.hingeInFromRight.ng-enter.ng-enter-active,.hingeInFromRight.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromBottom.ng-enter,.hingeInFromBottom.ng-hide-remove{transform:perspective(2000px) rotateX(90deg);transform-origin:bottom;opacity:0}.hingeInFromBottom.ng-enter.ng-enter-active,.hingeInFromBottom.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromLeft.ng-enter,.hingeInFromLeft.ng-hide-remove{transform:perspective(2000px) rotateY(90deg);transform-origin:left;opacity:0}.hingeInFromLeft.ng-enter.ng-enter-active,.hingeInFromLeft.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromMiddleX.ng-enter,.hingeInFromMiddleX.ng-hide-remove{transform:perspective(2000px) rotateX(-90deg);transform-origin:center;opacity:0}.hingeInFromMiddleX.ng-enter.ng-enter-active,.hingeInFromMiddleX.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromMiddleY.ng-enter,.hingeInFromMiddleY.ng-hide-remove{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;transform:perspective(2000px) rotateY(-90deg);transform-origin:center;opacity:0}.hingeInFromMiddleY.ng-enter.ng-enter-active,.hingeInFromMiddleY.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeOutFromTop.ng-hide-add,.hingeOutFromTop.ng-leave{transform:rotate(0);transform-origin:top;opacity:1}.hingeOutFromTop.ng-hide-add.ng-hide-add-active,.hingeOutFromTop.ng-leave.ng-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hingeOutFromRight.ng-hide-add,.hingeOutFromRight.ng-leave{transform:rotate(0);transform-origin:right;opacity:1}.hingeOutFromRight.ng-hide-add.ng-hide-add-active,.hingeOutFromRight.ng-leave.ng-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.hingeOutFromBottom.ng-hide-add,.hingeOutFromBottom.ng-leave{transform:rotate(0);transform-origin:bottom;opacity:1}.hingeOutFromBottom.ng-hide-add.ng-hide-add-active,.hingeOutFromBottom.ng-leave.ng-leave-active{transform:perspective(2000px) rotateX(90deg);opacity:0}.hingeOutFromLeft.ng-hide-add,.hingeOutFromLeft.ng-leave{transform:rotate(0);transform-origin:left;opacity:1}.hingeOutFromLeft.ng-hide-add.ng-hide-add-active,.hingeOutFromLeft.ng-leave.ng-leave-active{transform:perspective(2000px) rotateY(90deg);opacity:0}.hingeOutFromMiddleX.ng-hide-add,.hingeOutFromMiddleX.ng-leave{transform:rotate(0);transform-origin:center;opacity:1}.hingeOutFromMiddleX.ng-hide-add.ng-hide-add-active,.hingeOutFromMiddleX.ng-leave.ng-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hingeOutFromMiddleY.ng-hide-add,.hingeOutFromMiddleY.ng-leave{transform:rotate(0);transform-origin:center;opacity:1}.zoomIn.ng-enter,.zoomIn.ng-hide-remove,.zoomOut.ng-hide-add,.zoomOut.ng-leave{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:transform,property}.hingeOutFromMiddleY.ng-hide-add.ng-hide-add-active,.hingeOutFromMiddleY.ng-leave.ng-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.zoomIn.ng-enter,.zoomIn.ng-hide-remove{transform:scale(1.5);opacity:0}.zoomIn.ng-enter.ng-enter-active,.zoomIn.ng-hide-remove.ng-hide-remove-active{transform:scale(1);opacity:1}.zoomOut.ng-hide-add,.zoomOut.ng-leave{transform:scale(.5);opacity:1}.zoomOut.ng-hide-add.ng-hide-add-active,.zoomOut.ng-leave.ng-leave-active{transform:scale(1);opacity:0}.spinIn.ng-enter,.spinIn.ng-hide-remove{transition-property:transform,opacity;transform:rotate(-270deg);opacity:0}.spinIn.ng-enter.ng-enter-active,.spinIn.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.spinOut.ng-hide-add,.spinOut.ng-leave{transition-property:transform,opacity;transform:rotate(0);opacity:1}.spinOut.ng-hide-add.ng-hide-add-active,.spinOut.ng-leave.ng-leave-active{transform:rotate(270deg);opacity:0}.spinInCCW.ng-enter,.spinInCCW.ng-hide-remove{transition-property:transform,opacity;transform:rotate(270deg);opacity:0}.spinInCCW.ng-enter.ng-enter-active,.spinInCCW.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.spinOutCCW.ng-hide-add,.spinOutCCW.ng-leave{transition-property:transform,opacity;transform:rotate(0);opacity:1}.spinOutCCW.ng-hide-add.ng-hide-add-active,.spinOutCCW.ng-leave.ng-leave-active{transform:rotate(-270deg);opacity:0}.shake,.spin-ccw,.spin-cw,.wiggle{animation-duration:.5s;animation-timing-function:ease;transform:translate3d(0,0,0);animation-delay:0;backface-visibility:hidden}.slow{transition-duration:750ms!important}.fast{transition-duration:250ms!important}.linear{transition-timing-function:linear!important}.ease{transition-timing-function:ease!important}.easeIn{transition-timing-function:ease-in!important}.easeOut{transition-timing-function:ease-out!important}.easeInOut{transition-timing-function:ease-in-out!important}.bounceIn{transition-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.bounceOut{transition-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.bounceInOut{transition-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.delay{transition-delay:.3s!important}.long-delay{transition-delay:.7s!important}.shake{animation-name:shake}.spin-cw{animation-name:spin-cw}.spin-ccw{animation-name:spin-ccw}.wiggle{animation-name:wiggle}.shake.infinite,.spin-ccw.infinite,.spin-cw.infinite,.wiggle.infinite{animation-iteration-count:infinite}.shake.linear,.spin-ccw.linear,.spin-cw.linear,.wiggle.linear{animation-timing-function:linear!important}.shake.ease,.spin-ccw.ease,.spin-cw.ease,.wiggle.ease{animation-timing-function:ease!important}.shake.easeIn,.spin-ccw.easeIn,.spin-cw.easeIn,.wiggle.easeIn{animation-timing-function:ease-in!important}.shake.easeOut,.spin-ccw.easeOut,.spin-cw.easeOut,.wiggle.easeOut{animation-timing-function:ease-out!important}.shake.easeInOut,.spin-ccw.easeInOut,.spin-cw.easeInOut,.wiggle.easeInOut{animation-timing-function:ease-in-out!important}.shake.bounceIn,.spin-ccw.bounceIn,.spin-cw.bounceIn,.wiggle.bounceIn{animation-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.shake.bounceOut,.spin-ccw.bounceOut,.spin-cw.bounceOut,.wiggle.bounceOut{animation-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.shake.bounceInOut,.spin-ccw.bounceInOut,.spin-cw.bounceInOut,.wiggle.bounceInOut{animation-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.shake.slow,.spin-ccw.slow,.spin-cw.slow,.wiggle.slow{animation-duration:750ms!important}.shake.fast,.spin-ccw.fast,.spin-cw.fast,.wiggle.fast{animation-duration:250ms!important}.shake.delay,.spin-ccw.delay,.spin-cw.delay,.wiggle.delay{animation-delay:.3s!important}.shake.long-delay,.spin-ccw.long-delay,.spin-cw.long-delay,.wiggle.long-delay{animation-delay:.7s!important}.long-stagger,.stagger,.stort-stagger{transition-delay:150ms;transition-duration:0}.position-absolute{overflow:hidden;position:relative}.ui-animation.ng-enter-active,.ui-animation.ng-leave-active{position:absolute!important;backface-visibility:hidden;-webkit-transform-style:preserve-3d;top:0;right:0;bottom:0;left:0}.notification,.static-notification{z-index:1000;position:relative;margin-top:.5rem;margin-bottom:.5rem;display:none}.notification h1,.static-notification h1{font-size:1.25em;margin:0}.notification p,.static-notification p{margin:0}.is-active.notification,.is-active.static-notification{display:flex}.notification .close-button,.static-notification .close-button{color:#fff}.notification-container{z-index:3000;position:fixed;display:flex;flex-direction:column}.notification{background:#00558b;padding:1rem;border-radius:4px}.notification,.notification h1,.notification h2,.notification h3,.notification h4,.notification h5,.notification h6{color:#fff}.notification.success{background:#43AC6A;padding:1rem;border-radius:4px}.notification.success,.notification.success h1,.notification.success h2,.notification.success h3,.notification.success h4,.notification.success h5,.notification.success h6{color:#fff}.notification.warning{background:#F08A24;padding:1rem;border-radius:4px}.notification.warning,.notification.warning h1,.notification.warning h2,.notification.warning h3,.notification.warning h4,.notification.warning h5,.notification.warning h6{color:#fff}.notification.alert{background:#F04124;padding:1rem;border-radius:4px}.notification.alert,.notification.alert h1,.notification.alert h2,.notification.alert h3,.notification.alert h4,.notification.alert h5,.notification.alert h6{color:#fff}.notification.dark{background:#232323;padding:1rem;border-radius:4px}.notification.dark,.notification.dark h1,.notification.dark h2,.notification.dark h3,.notification.dark h4,.notification.dark h5,.notification.dark h6{color:#fff}.static-notification{background:#00558b;padding:1rem;border-radius:4px;position:fixed!important}.static-notification,.static-notification h1,.static-notification h2,.static-notification h3,.static-notification h4,.static-notification h5,.static-notification h6{color:#fff}.static-notification.top-right{width:25rem;right:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.top-right{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.top-left{width:25rem;left:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.top-left{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.top-middle{width:25rem;left:50%;margin-left:-12.5rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.top-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.bottom-right{width:25rem;right:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.bottom-right{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.bottom-left{width:25rem;left:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.bottom-left{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.bottom-middle{width:25rem;left:50%;margin-left:-12.5rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.bottom-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.success{background:#43AC6A;padding:1rem;border-radius:4px}.static-notification.success,.static-notification.success h1,.static-notification.success h2,.static-notification.success h3,.static-notification.success h4,.static-notification.success h5,.static-notification.success h6{color:#fff}.static-notification.warning{background:#F08A24;padding:1rem;border-radius:4px}.static-notification.warning,.static-notification.warning h1,.static-notification.warning h2,.static-notification.warning h3,.static-notification.warning h4,.static-notification.warning h5,.static-notification.warning h6{color:#fff}.static-notification.alert{background:#F04124;padding:1rem;border-radius:4px}.static-notification.alert,.static-notification.alert h1,.static-notification.alert h2,.static-notification.alert h3,.static-notification.alert h4,.static-notification.alert h5,.static-notification.alert h6{color:#fff}.static-notification.dark{background:#232323;padding:1rem;border-radius:4px}.off-canvas,.off-canvas~.grid-frame{transition:transform .25s ease-out;background:#fff}.static-notification.dark,.static-notification.dark h1,.static-notification.dark h2,.static-notification.dark h3,.static-notification.dark h4,.static-notification.dark h5,.static-notification.dark h6{color:#fff}.notification-container{width:25rem;right:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.top-right{width:25rem;right:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.top-right{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.top-left{width:25rem;left:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.top-left{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.top-middle{width:25rem;left:50%;margin-left:-12.5rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.top-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.bottom-right{width:25rem;right:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.bottom-right{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.bottom-left{width:25rem;left:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.bottom-left{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.bottom-middle{width:25rem;left:50%;margin-left:-12.5rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.bottom-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-icon{flex:0 0 60px;margin-right:1rem}.notification-icon img{width:100%;height:auto}.notification-content{flex:1}.is-active.off-canvas{transform:translate(0,0)!important}.off-canvas~.grid-frame{transform:translate(0,0,0);backface-visibility:hidden}.off-canvas{position:fixed;overflow:auto;-webkit-overflow-scrolling:touch;z-index:2;width:250px;height:100%;top:0;left:0;box-shadow:inset -3px 0 10px rgba(0,0,0,.25);transform:translateX(-100%);color:#000}.popup,.switch{overflow:hidden}.off-canvas.is-active~.grid-frame{transform:translateX(250px)!important}.off-canvas.top{height:250px;width:100%;top:0;left:0;transform:translateY(-100%);box-shadow:inset 0 -3px 10px rgba(0,0,0,.25)}.off-canvas.top.is-active~.grid-frame{transform:translateY(250px)!important}.off-canvas.right{width:250px;height:100%;left:auto;top:0;right:0;box-shadow:inset 3px 0 10px rgba(0,0,0,.25);transform:translateX(100%)}.off-canvas.right.is-active~.grid-frame{transform:translateX(-250px)!important}.off-canvas.bottom{height:250px;width:100%;top:auto;bottom:0;left:0;transform:translateY(100%);box-shadow:inset 0 3px 10px rgba(0,0,0,.25)}.off-canvas.bottom.is-active~.grid-frame{transform:translateY(-250px)!important}.off-canvas.left{width:250px;height:100%;top:0;left:0;box-shadow:inset -3px 0 10px rgba(0,0,0,.25);transform:translateX(-100%)}.off-canvas.left.is-active~.grid-frame{transform:translateX(250px)!important}.off-canvas.detached{z-index:0;box-shadow:none}.off-canvas.detached,.off-canvas.detached.is-active{transform:none}.off-canvas.detached~.grid-frame{z-index:1;box-shadow:0 0 15px rgba(0,0,0,.5)}.popup,.popup.dark,.popup.primary{box-shadow:0 0 10px rgba(0,0,0,.25)}.off-canvas.primary{background:#00558b;color:#fff}.off-canvas.dark{background:#232323;color:#fff}.popup{position:absolute;z-index:1000;opacity:0;transition:opacity .25s ease-out;pointer-events:none;width:18.75rem;background:#fff;border-radius:0;border:0}.tether-enabled.popup{opacity:1;pointer-events:auto}.popup.dark{background:#232323;border-radius:0;border:0}.popup.primary{background:#00558b;border-radius:0;border:0}.switch{position:relative;display:inline-block}.switch>input{position:absolute;left:-9999px;outline:0}.switch>label{-ms-touch-action:manipulation;touch-action:manipulation;display:block;width:100%;height:100%;margin:0;background:#ccc}.switch,.switch>label::after{height:2rem;border-radius:9999px}.switch{width:3.125rem}.switch>label::after{content:'';display:block;position:absolute;top:0;left:0;width:2rem;background:#fff;transition:left .15s ease-out;border:4px solid #ccc}.switch input:checked+label::after{left:1.125rem;border-color:#00558b}.switch input:checked+label{background:#00558b;margin:0}.tabs,.tabs.vertical{display:flex;background:0 0}.switch.small{width:2.5rem;height:1.625rem}.switch.small>label::after{width:1.625rem;height:1.625rem}.switch.small input:checked+label::after{left:.875rem}.switch.large{width:3.75rem;height:2.375rem}.switch.large>label::after{width:2.375rem;height:2.375rem}.switch.large input:checked+label::after{left:1.375rem}.tabs{flex-flow:row wrap}.tabs.vertical{flex-flow:column nowrap}.tabs .tab-item{background:#f3f3f3;padding:1rem;line-height:1;margin:0;flex:0 1 auto;color:#000}.tabs .tab-item.is-active{background:#ececec;color:#000}.tabs .tab-item.is-active:hover,.tabs .tab-item:hover{background:#e7e7e7}.tab-contents{padding:1rem}.tab-contents .tab-content{display:none}.tab-contents .tab-content.is-active{display:block}.accordion{border:1px solid #cbcbcb}.accordion-title{padding:1rem;background:#f3f3f3;color:#000;line-height:1;cursor:pointer}.accordion-title:hover{background:#e7e7e7}.is-active>.accordion-title{background:#ececec;color:#000}.accordion-content{padding:1rem;display:none}.is-active>.accordion-content{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}a{color:#00558b;text-decoration:none;line-height:inherit}p,p.lead{line-height:1.6}a:focus,a:hover{color:#004978}a img{border:none}p{font-family:inherit;font-size:1rem;margin-bottom:1.25rem}.subheader,h1,h2,h3,h4,h5,h6{margin-top:.2rem;margin-bottom:.5rem;font-weight:400}p.lead{font-size:1.21875rem}p aside{font-size:.875rem;line-height:1.35;font-style:italic}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-style:normal;color:#222;line-height:1.4}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-size:60%;color:#6f6f6f;line-height:0}h1{font-size:2.125rem}h2{font-size:1.6875rem}h3{font-size:1.375rem}h4,h5{font-size:1.125rem}h6{font-size:1rem}.subheader{line-height:1.4;color:#6f6f6f}b,em,i,small,strong{line-height:inherit}hr{border:solid #ddd;border-width:1px 0 0;margin:1.25rem 0 1.1875rem;height:0}em,i{font-style:italic}small{font-size:60%;color:#6f6f6f}code{font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#464646;background-color:#fbfbfb;border-width:1px;border-style:solid;border-color:#e2e2e2;padding:.125rem .3125rem .0625rem}dl,ol,ul{font-size:1rem;line-height:1.6;margin-bottom:1.25rem;list-style-position:outside;font-family:inherit}ol,ul{margin-left:1.1rem}ol li ol,ol li ul,ul li ol,ul li ul{margin-left:1.25rem;margin-bottom:0}ul.no-bullet{margin-left:0}dl dt{margin-bottom:.3rem;font-weight:700}dl dd{margin-bottom:.75rem}abbr,acronym{text-transform:uppercase;font-size:90%;color:#222;border-bottom:1px dotted #ddd;cursor:help}abbr{text-transform:none}blockquote{margin:0 0 1.25rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #ddd}blockquote cite{display:block;font-size:.8125rem;color:#555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555}blockquote,blockquote p{line-height:1.6;color:#6f6f6f}.v-align{display:flex;align-items:center;justify-content:space-between}.v-align .align-center{align-self:center}.v-align .align-bottom{align-self:flex-end}.v-align .small-align-top{align-self:flex-start}.v-align .small-align-center{align-self:center}.v-align .small-align-bottom{align-self:flex-end}.hide{display:none!important}.invisible{visibility:hidden}.hide-for-small:not(.ng-hide){display:block!important;display:none!important}.hide-for-small[class*=grid-block]:not(.ng-hide){display:flex!important;display:none!important}.show-for-small:not(.ng-hide){display:none!important;display:block!important}.show-for-small[class*=grid-block]:not(.ng-hide){display:none!important;display:flex!important}.hide-for-small-only:not(.ng-hide){display:block!important}@media only screen and (min-width:0em) and (max-width:39.9375rem){.hide-for-small-only:not(.ng-hide){display:none!important}}.hide-for-small-only[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-small-only:not(.ng-hide){display:none!important}@media only screen and (min-width:0em) and (max-width:39.9375rem){.hide-for-small-only[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-small-only:not(.ng-hide){display:block!important}}.show-for-small-only[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:0em) and (max-width:39.9375rem){.show-for-small-only[class*=grid-block]:not(.ng-hide){display:flex!important}.small-only-text-left{text-align:left}}.hide-for-medium:not(.ng-hide){display:block!important}@media only screen and (min-width:40em){h1,h2,h3,h4,h5,h6{line-height:1.4}h1{font-size:2.75rem}h2{font-size:2.3125rem}h3{font-size:1.6875rem}h4{font-size:1.4375rem}h5{font-size:1.125rem}h6{font-size:1rem}.v-align .medium-align-top{align-self:flex-start}.v-align .medium-align-center{align-self:center}.v-align .medium-align-bottom{align-self:flex-end}.hide-for-medium:not(.ng-hide){display:none!important}}.hide-for-medium[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-medium:not(.ng-hide){display:none!important}@media only screen and (min-width:40em){.hide-for-medium[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-medium:not(.ng-hide){display:block!important}}.show-for-medium[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:40em){.show-for-medium[class*=grid-block]:not(.ng-hide){display:flex!important}.medium-text-left{text-align:left}}.hide-for-medium-only:not(.ng-hide){display:block!important}@media only screen and (min-width:40em) and (max-width:74.9375rem){.hide-for-medium-only:not(.ng-hide){display:none!important}}.hide-for-medium-only[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-medium-only:not(.ng-hide){display:none!important}@media only screen and (min-width:40em) and (max-width:74.9375rem){.hide-for-medium-only[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-medium-only:not(.ng-hide){display:block!important}}.show-for-medium-only[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:40em) and (max-width:74.9375rem){.show-for-medium-only[class*=grid-block]:not(.ng-hide){display:flex!important}.medium-only-text-left{text-align:left}}.hide-for-large:not(.ng-hide){display:block!important}@media only screen and (min-width:75em){.v-align .large-align-top{align-self:flex-start}.v-align .large-align-center{align-self:center}.v-align .large-align-bottom{align-self:flex-end}.hide-for-large:not(.ng-hide){display:none!important}}.hide-for-large[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-large:not(.ng-hide){display:none!important}@media only screen and (min-width:75em){.hide-for-large[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-large:not(.ng-hide){display:block!important}}.show-for-large[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:75em){.show-for-large[class*=grid-block]:not(.ng-hide){display:flex!important}.large-text-left{text-align:left}}.hide-for-large-only:not(.ng-hide){display:block!important}@media only screen and (min-width:75em) and (max-width:89.9375rem){.hide-for-large-only:not(.ng-hide){display:none!important}}.hide-for-large-only[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-large-only:not(.ng-hide){display:none!important}@media only screen and (min-width:75em) and (max-width:89.9375rem){.hide-for-large-only[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-large-only:not(.ng-hide){display:block!important}}.show-for-large-only[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:75em) and (max-width:89.9375rem){.show-for-large-only[class*=grid-block]:not(.ng-hide){display:flex!important}.large-only-text-left{text-align:left}}@media only screen and (orientation:portrait){.hide-for-portrait{display:none!important}.hide-for-portrait[class*=grid-block]{display:flex!important}}.show-for-portrait{display:none!important}@media only screen and (orientation:portrait){.show-for-portrait{display:block!important}.show-for-portrait[class*=grid-block]{display:flex!important}}@media only screen and (orientation:landscape){.hide-for-landscape{display:none!important}.hide-for-landscape[class*=grid-block]{display:flex!important}}.show-for-landscape{display:none!important}@media only screen and (orientation:landscape){.show-for-landscape{display:block!important}.show-for-landscape[class*=grid-block]{display:flex!important}}.small-text-left,.text-left{text-align:left}.small-text-right,.text-right{text-align:right}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-right{text-align:right}}@media only screen and (min-width:40em){.medium-text-right{text-align:right}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-right{text-align:right}}@media only screen and (min-width:75em){.large-text-right{text-align:right}}@media only screen and (min-width:75em) and (max-width:89.9375rem){.large-only-text-right{text-align:right}.large-only-text-center{text-align:center}}.small-text-center,.text-center{text-align:center}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-center{text-align:center}}@media only screen and (min-width:40em){.medium-text-center{text-align:center}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-center{text-align:center}}@media only screen and (min-width:75em){.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.small-text-justify,.text-justify{text-align:justify}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-justify{text-align:justify}}@media only screen and (min-width:40em){.medium-text-justify{text-align:justify}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-justify{text-align:justify}}@media only screen and (min-width:75em) and (max-width:89.9375rem){.large-only-text-justify{text-align:justify}}.clearfix:after,.clearfix:before{content:" ";display:table}.float-left{float:left}.float-right{float:right}.float-none{float:none} +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fYmxvY2stbGlzdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy92ZW5kb3IvX25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2FjdGlvbi1zaGVldC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19saXN0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtYmFyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fbm90aWZpY2F0aW9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX3V0aWxpdGllcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9oZWxwZXJzL19taXhpbnMuc2NzcyIsImZvdW5kYXRpb24vX2ZvdW5kYXRpb24taWNvbnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2ljb25pYy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvaGVscGVycy9fYnJlYWtwb2ludHMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvaGVscGVycy9fZnVuY3Rpb25zLnNjc3MiLCIkc3RkaW4iLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvaGVscGVycy9faW1hZ2VzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX3BvcHVwLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX21vdGlvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19leHRyYXMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fcGFuZWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fbW9kYWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErSFEsb0JDNEtELGlCQUNJLHFCQUNULE9BQVEsUUN0TkosS0R1RU4sSUFDRyxJRXdEQyxTQUFVLFNINkZKLGtDSXBGSixPSGlKSixtQkFBb0IsS0d6U2pCLGdCQUFpQixLQ3dIcEIsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFNLEdBbEJyQixFQXVCQyxlQTNLb0IsbUJGVXBCLGlCQUFBLHNCQUFBLHlCSDJTRixZQS9SSyxlTThHUSxjQ25KRCxhQzBPSCxVQ29LUSxZQUFDLGFBQUEsYUFBQSxhQUFELFlBQUEsWUFBQSxZQUFBLFlBQUEsWUFBQSxZQUFBLFlKaklmLGFBQ2UsbUJBQVQsbUJBQ0osZ0JBQWlCLEtLbkZILG1CQ3RJSixvQkFDUixXQVBLLFdDc0NKLGdCUHlITCxHT3pIUSxNQUFPLEtDM0ZULFdBQ1IsWUFBZ0MsaUJBQ2hDLElBQUssNkNBQXFELGVBQzFELFlBQWEsSUFDYixXQUFZLE9BSUUsd0JBQ1AsaUJBQ08sd0JBQ0MseUJBQ0gsc0JBQ0MsdUJBQ0wsa0JBQ0Usb0JBQ0QsbUJBQ0csc0JBQ0Esc0JBQ0MsdUJBQ0gsb0JBQ08sMkJBQ0YseUJBQ0oscUJBQ0Msc0JBQ1AsZUFDSyxvQkFDRCxtQkFDUyw0QkFDSCx5QkFDRCx3QkFDQSx3QkFDRSwwQkFDUCxtQkFDRixpQkFDSSxxQkFDTCxnQkFDUyx5QkFDVCxnQkFDSSxvQkFDRCxtQkFDRSxxQkFDQyxzQkFDTCxpQkFDRyxvQkFDRixrQkFDRCxpQkFDRyxvQkFDTywyQkFDQyw0QkFDUCxxQkFDSixpQkFDUywwQkFDVCxpQkFDUSx5QkFDQywwQkFDRCx5QkFDTixtQkFDQyxvQkFDRCxtQkFDQyxvQkFDRyx1QkFDUCxnQkFDQyxpQkFDRCxnQkFDSSxvQkFDQSxvQkFDQSxvQkFDRCxtQkFDQSxtQkFDRSxxQkFDRixtQkFDQSxtQkFDSSx1QkFDTCxrQkFDRSxvQkFDSCxpQkFDRyxvQkFDSixnQkFDRCxlQUNTLHdCQUNDLHlCQUNQLGtCQUNBLGtCQUNHLHFCQUNMLGdCQUNNLHNCQUNDLHVCQUNMLGtCQUNGLGdCQUNNLHNCQUNELHFCQUNPLDRCQUNQLHFCQUNFLHVCQUNGLHFCQUNFLHVCQUNOLGlCQUNELGdCQUNDLGlCQUNNLHVCQUNBLHVCQUNQLGdCQUNFLGtCQUNILGVBQ0csa0JBQ0Esa0JBQ0cscUJBQ0wsZ0JBQ0EsZ0JBQ08sdUJBQ0EsdUJBQ0ksMkJBQ1gsZ0JBQ0EsZ0JBQ0EsZ0JBQ1ksNEJBQ1osZ0JBQ08sdUJBQ0EsdUJBQ1AsZ0JBQ0QsZUFDRyxrQkFDRyxxQkFDQyxzQkFDRSx3QkFDUCxpQkFDUSx5QkFDUCxrQkFDQyxtQkFDRSxxQkFDSixpQkFDRCxnQkFDRyxtQkFDRyxzQkFDRixvQkFDQyxxQkFDRCxvQkFDRyx1QkFDSCxvQkFDQyxxQkFDTSwyQkFDQSwyQkFDQSwyQkFDSix1QkFDQSx1QkFDRSx5QkFDTCxvQkFDRyx1QkFDQSx1QkFDUCxnQkFDUSx3QkFDSCxxQkFDSixpQkFDRixlQUNHLGtCQUNBLGtCQUNELGlCQUNNLHVCQUNELHNCQUNOLGdCQUNBLGdCQUNDLGlCQUNBLGlCQUNHLG9CQUNDLHFCQUNRLDZCQUNaLGlCQUNLLHNCQUNPLDZCQUNYLGtCQUNELGlCQUNDLGtCQUNDLG1CQUNhLGdDQUNiLG1CQUNHLHNCQUNKLGtCQUNILGVBQ1EsdUJBQ1AsZ0JBQ0MsaUJBQ1EseUJBQ1Asa0JBQ00sd0JBQ0MseUJBQ04sbUJBQ0YsaUJBQ08sd0JBQ0Esd0JBQ0MseUJBQ0MsMEJBQ0Ysd0JBQ0UsMEJBQ0gsdUJBQ0csMEJBQ0UsNEJBQ0ksZ0NBQ0YsOEJBQ1AsdUJBQ0ksMkJBQ0gsd0JBQ0UsMEJBQ0MsMkJBQ0EsMkJBQ0YseUJBQ0EseUJBQ0ksNkJBQ0MsOEJBQ0wseUJBQ0ssOEJBQ0EsOEJBQ1Isc0JBQ00sNEJBQ0gseUJBQ0EseUJBQ0UsMkJBQ0YseUJBQ0MsMEJBQ0Ysd0JBQ0QsdUJBQ0UseUJBQ0csNEJBQ0wsdUJBQ0UseUJBQ0ksNkJBQ0wsd0JBQ08sK0JBQ0osMkJBQ0QsMEJBQ0EsMEJBQ08saUNBQ1Qsd0JBQ00sOEJBQ0YsNEJBQ0gseUJBQ0MsMEJBQ0Ysd0JBQ0UsMEJBQ0gsdUJBQ0Msd0JBQ0QsdUJBQ0csMEJBQ0QseUJBQ0YsdUJBQ04saUJBQ0QsZ0JBQ0EsZ0JBQ1MseUJBQ0oscUJBQ0UsdUJBQ0ssNEJBQ0QsMkJBQ0wsc0JBQ0osa0JBQ2MsZ0NBQ1gscUJBQ0Msc0JBQ0Esc0JBQ0osa0JBQ1EsMEJBQ0Ysd0JBQ1AsaUJBQ1ksNkJBQ1Asc0JBQ1EsOEJBQ0EsOEJBQ1osa0JBQ0QsaUJBQ0EsaUJBQ0Msa0JBQ0cscUJBQ08sNEJBQ1Ysa0JBQ0Esa0JBQ00sd0JBQ04sa0JBQ0gsZUFDRSxpQkFDTSx1QkFDRSx5QkFDUCxrQkFDSCxlQUNPLHNCQUNKLGtCQUNBLGtCQUNFLG9CQUNQLGFBQ0UsZUFDSSxtQkFDUSxvQkFDakIsWUFBZ0MsaUJBQ2hDLFdBQVksT0FDWixZQUFhLElBQ2IsYUFBYyxPQUNkLGVBQWdCLEtBQ2hCLFlBQWEsRUFDYix1QkFBd0IsWUFDeEIsUUFBUyxhQUNULGdCQUFpQixRYm1DVCxtQlF4QkksbUJNblJOLGtCYnlFUixFQW1TUSxTQWxTRixPQUNKLFlBQWEsSVlnTVEsd0JBQUcsUUFBcUIsUUFDL0IsaUJBQUcsUUFBcUIsUUFDakIsd0JBQUcsUUFBcUIsUUFDdkIseUJBQUcsUUFBcUIsUUFDM0Isc0JBQUcsUUFBcUIsUUFDdkIsdUJBQUcsUUFBcUIsUUFDN0Isa0JBQUcsUUFBcUIsUUFDdEIsb0JBQUcsUUFBcUIsUUFDekIsbUJBQUcsUUFBcUIsUUFDckIsc0JBQUcsUUFBcUIsUUFDeEIsc0JBQUcsUUFBcUIsUUFDdkIsdUJBQUcsUUFBcUIsUUFDM0Isb0JBQUcsUUFBcUIsUUFDakIsMkJBQUcsUUFBcUIsUUFDMUIseUJBQUcsUUFBcUIsUUFDNUIscUJBQUcsUUFBcUIsUUFDdkIsc0JBQUcsUUFBcUIsUUFDL0IsZUFBRyxRQUFxQixRQUNuQixvQkFBRyxRQUFxQixRQUN6QixtQkFBRyxRQUFxQixRQUNmLDRCQUFHLFFBQXFCLFFBQzNCLHlCQUFHLFFBQXFCLFFBQ3pCLHdCQUFHLFFBQXFCLFFBQ3hCLHdCQUFHLFFBQXFCLFFBQ3RCLDBCQUFHLFFBQXFCLFFBQy9CLG1CQUFHLFFBQXFCLFFBQzFCLGlCQUFHLFFBQXFCLFFBQ3BCLHFCQUFHLFFBQXFCLFFBQzdCLGdCQUFHLFFBQXFCLFFBQ2YseUJBQUcsUUFBcUIsUUFDakMsZ0JBQUcsUUFBcUIsUUFDcEIsb0JBQUcsUUFBcUIsUUFDekIsbUJBQUcsUUFBcUIsUUFDdEIscUJBQUcsUUFBcUIsUUFDdkIsc0JBQUcsUUFBcUIsUUFDN0IsaUJBQUcsUUFBcUIsUUFDckIsb0JBQUcsUUFBcUIsUUFDMUIsa0JBQUcsUUFBcUIsUUFDekIsaUJBQUcsUUFBcUIsUUFDckIsb0JBQUcsUUFBcUIsUUFDakIsMkJBQUcsUUFBcUIsUUFDdkIsNEJBQUcsUUFBcUIsUUFDL0IscUJBQUcsUUFBcUIsUUFDNUIsaUJBQUcsUUFBcUIsUUFDZiwwQkFBRyxRQUFxQixRQUNqQyxpQkFBRyxRQUFxQixRQUNoQix5QkFBRyxRQUFxQixRQUN2QiwwQkFBRyxRQUFxQixRQUN6Qix5QkFBRyxRQUFxQixRQUM5QixtQkFBRyxRQUFxQixRQUN2QixvQkFBRyxRQUFxQixRQUN6QixtQkFBRyxRQUFxQixRQUN2QixvQkFBRyxRQUFxQixRQUNyQix1QkFBRyxRQUFxQixRQUMvQixnQkFBRyxRQUFxQixRQUN2QixpQkFBRyxRQUFxQixRQUN6QixnQkFBRyxRQUFxQixRQUNwQixvQkFBRyxRQUFxQixRQUN4QixvQkFBRyxRQUFxQixRQUN4QixvQkFBRyxRQUFxQixRQUN6QixtQkFBRyxRQUFxQixRQUN4QixtQkFBRyxRQUFxQixRQUN0QixxQkFBRyxRQUFxQixRQUMxQixtQkFBRyxRQUFxQixRQUN4QixtQkFBRyxRQUFxQixRQUNwQix1QkFBRyxRQUFxQixRQUM3QixrQkFBRyxRQUFxQixRQUN0QixvQkFBRyxRQUFxQixRQUMzQixpQkFBRyxRQUFxQixRQUNyQixvQkFBRyxRQUFxQixRQUM1QixnQkFBRyxRQUFxQixRQUN6QixlQUFHLFFBQXFCLFFBQ2Ysd0JBQUcsUUFBcUIsUUFDdkIseUJBQUcsUUFBcUIsUUFDL0Isa0JBQUcsUUFBcUIsUUFDeEIsa0JBQUcsUUFBcUIsUUFDckIscUJBQUcsUUFBcUIsUUFDN0IsZ0JBQUcsUUFBcUIsUUFDbEIsc0JBQUcsUUFBcUIsUUFDdkIsdUJBQUcsUUFBcUIsUUFDN0Isa0JBQUcsUUFBcUIsUUFDMUIsZ0JBQUcsUUFBcUIsUUFDbEIsc0JBQUcsUUFBcUIsUUFDekIscUJBQUcsUUFBcUIsUUFDakIsNEJBQUcsUUFBcUIsUUFDL0IscUJBQUcsUUFBcUIsUUFDdEIsdUJBQUcsUUFBcUIsUUFDMUIscUJBQUcsUUFBcUIsUUFDdEIsdUJBQUcsUUFBcUIsUUFDOUIsaUJBQUcsUUFBcUIsUUFDekIsZ0JBQUcsUUFBcUIsUUFDdkIsaUJBQUcsUUFBcUIsUUFDbEIsdUJBQUcsUUFBcUIsUUFDeEIsdUJBQUcsUUFBcUIsUUFDL0IsZ0JBQUcsUUFBcUIsUUFDdEIsa0JBQUcsUUFBcUIsUUFDM0IsZUFBRyxRQUFxQixRQUNyQixrQkFBRyxRQUFxQixRQUN4QixrQkFBRyxRQUFxQixRQUNyQixxQkFBRyxRQUFxQixRQUM3QixnQkFBRyxRQUFxQixRQUN4QixnQkFBRyxRQUFxQixRQUNqQix1QkFBRyxRQUFxQixRQUN4Qix1QkFBRyxRQUFxQixRQUNwQiwyQkFBRyxRQUFxQixRQUNuQyxnQkFBRyxRQUFxQixRQUN4QixnQkFBRyxRQUFxQixRQUN4QixnQkFBRyxRQUFxQixRQUNaLDRCQUFHLFFBQXFCLFFBQ3BDLGdCQUFHLFFBQXFCLFFBQ2pCLHVCQUFHLFFBQXFCLFFBQ3hCLHVCQUFHLFFBQXFCLFFBQy9CLGdCQUFHLFFBQXFCLFFBQ3pCLGVBQUcsUUFBcUIsUUFDckIsa0JBQUcsUUFBcUIsUUFDckIscUJBQUcsUUFBcUIsUUFDdkIsc0JBQUcsUUFBcUIsUUFDdEIsd0JBQUcsUUFBcUIsUUFDL0IsaUJBQUcsUUFBcUIsUUFDaEIseUJBQUcsUUFBcUIsUUFDL0Isa0JBQUcsUUFBcUIsUUFDdkIsbUJBQUcsUUFBcUIsUUFDdEIscUJBQUcsUUFBcUIsUUFDNUIsaUJBQUcsUUFBcUIsUUFDekIsZ0JBQUcsUUFBcUIsUUFDckIsbUJBQUcsUUFBcUIsUUFDckIsc0JBQUcsUUFBcUIsUUFDMUIsb0JBQUcsUUFBcUIsUUFDdkIscUJBQUcsUUFBcUIsUUFDekIsb0JBQUcsUUFBcUIsUUFDckIsdUJBQUcsUUFBcUIsUUFDM0Isb0JBQUcsUUFBcUIsUUFDdkIscUJBQUcsUUFBcUIsUUFDbEIsMkJBQUcsUUFBcUIsUUFDeEIsMkJBQUcsUUFBcUIsUUFDeEIsMkJBQUcsUUFBcUIsUUFDNUIsdUJBQUcsUUFBcUIsUUFDeEIsdUJBQUcsUUFBcUIsUUFDdEIseUJBQUcsUUFBcUIsUUFDN0Isb0JBQUcsUUFBcUIsUUFDckIsdUJBQUcsUUFBcUIsUUFDeEIsdUJBQUcsUUFBcUIsUUFDL0IsZ0JBQUcsUUFBcUIsUUFDaEIsd0JBQUcsUUFBcUIsUUFDM0IscUJBQUcsUUFBcUIsUUFDNUIsaUJBQUcsUUFBcUIsUUFDMUIsZUFBRyxRQUFxQixRQUNyQixrQkFBRyxRQUFxQixRQUN4QixrQkFBRyxRQUFxQixRQUN6QixpQkFBRyxRQUFxQixRQUNsQix1QkFBRyxRQUFxQixRQUN6QixzQkFBRyxRQUFxQixRQUM5QixnQkFBRyxRQUFxQixRQUN4QixnQkFBRyxRQUFxQixRQUN2QixpQkFBRyxRQUFxQixRQUN4QixpQkFBRyxRQUFxQixRQUNyQixvQkFBRyxRQUFxQixRQUN2QixxQkFBRyxRQUFxQixRQUNoQiw2QkFBRyxRQUFxQixRQUNwQyxpQkFBRyxRQUFxQixRQUNuQixzQkFBRyxRQUFxQixRQUNqQiw2QkFBRyxRQUFxQixRQUNuQyxrQkFBRyxRQUFxQixRQUN6QixpQkFBRyxRQUFxQixRQUN2QixrQkFBRyxRQUFxQixRQUN2QixtQkFBRyxRQUFxQixRQUNYLGdDQUFHLFFBQXFCLFFBQ3JDLG1CQUFHLFFBQXFCLFFBQ3JCLHNCQUFHLFFBQXFCLFFBQzVCLGtCQUFHLFFBQXFCLFFBQzNCLGVBQUcsUUFBcUIsUUFDaEIsdUJBQUcsUUFBcUIsUUFDL0IsZ0JBQUcsUUFBcUIsUUFDdkIsaUJBQUcsUUFBcUIsUUFDaEIseUJBQUcsUUFBcUIsUUFDL0Isa0JBQUcsUUFBcUIsUUFDbEIsd0JBQUcsUUFBcUIsUUFDdkIseUJBQUcsUUFBcUIsUUFDOUIsbUJBQUcsUUFBcUIsUUFDMUIsaUJBQUcsUUFBcUIsUUFDakIsd0JBQUcsUUFBcUIsUUFDeEIsd0JBQUcsUUFBcUIsUUFDdkIseUJBQUcsUUFBcUIsUUFDdkIsMEJBQUcsUUFBcUIsUUFDMUIsd0JBQUcsUUFBcUIsUUFDdEIsMEJBQUcsUUFBcUIsUUFDM0IsdUJBQUcsUUFBcUIsUUFDckIsMEJBQUcsUUFBcUIsUUFDdEIsNEJBQUcsUUFBcUIsUUFDcEIsZ0NBQUcsUUFBcUIsUUFDMUIsOEJBQUcsUUFBcUIsUUFDL0IsdUJBQUcsUUFBcUIsUUFDcEIsMkJBQUcsUUFBcUIsUUFDM0Isd0JBQUcsUUFBcUIsUUFDdEIsMEJBQUcsUUFBcUIsUUFDdkIsMkJBQUcsUUFBcUIsUUFDeEIsMkJBQUcsUUFBcUIsUUFDMUIseUJBQUcsUUFBcUIsUUFDeEIseUJBQUcsUUFBcUIsUUFDcEIsNkJBQUcsUUFBcUIsUUFDdkIsOEJBQUcsUUFBcUIsUUFDN0IseUJBQUcsUUFBcUIsUUFDbkIsOEJBQUcsUUFBcUIsUUFDeEIsOEJBQUcsUUFBcUIsUUFDaEMsc0JBQUcsUUFBcUIsUUFDbEIsNEJBQUcsUUFBcUIsUUFDM0IseUJBQUcsUUFBcUIsUUFDeEIseUJBQUcsUUFBcUIsUUFDdEIsMkJBQUcsUUFBcUIsUUFDMUIseUJBQUcsUUFBcUIsUUFDdkIsMEJBQUcsUUFBcUIsUUFDMUIsd0JBQUcsUUFBcUIsUUFDekIsdUJBQUcsUUFBcUIsUUFDdEIseUJBQUcsUUFBcUIsUUFDckIsNEJBQUcsUUFBcUIsUUFDN0IsdUJBQUcsUUFBcUIsUUFDdEIseUJBQUcsUUFBcUIsUUFDcEIsNkJBQUcsUUFBcUIsUUFDN0Isd0JBQUcsUUFBcUIsUUFDakIsK0JBQUcsUUFBcUIsUUFDNUIsMkJBQUcsUUFBcUIsUUFDekIsMEJBQUcsUUFBcUIsUUFDeEIsMEJBQUcsUUFBcUIsUUFDakIsaUNBQUcsUUFBcUIsUUFDakMsd0JBQUcsUUFBcUIsUUFDbEIsOEJBQUcsUUFBcUIsUUFDMUIsNEJBQUcsUUFBcUIsUUFDM0IseUJBQUcsUUFBcUIsUUFDdkIsMEJBQUcsUUFBcUIsUUFDMUIsd0JBQUcsUUFBcUIsUUFDdEIsMEJBQUcsUUFBcUIsUUFDM0IsdUJBQUcsUUFBcUIsUUFDdkIsd0JBQUcsUUFBcUIsUUFDekIsdUJBQUcsUUFBcUIsUUFDckIsMEJBQUcsUUFBcUIsUUFDekIseUJBQUcsUUFBcUIsUUFDMUIsdUJBQUcsUUFBcUIsUUFDOUIsaUJBQUcsUUFBcUIsUUFDekIsZ0JBQUcsUUFBcUIsUUFDeEIsZ0JBQUcsUUFBcUIsUUFDZix5QkFBRyxRQUFxQixRQUM1QixxQkFBRyxRQUFxQixRQUN0Qix1QkFBRyxRQUFxQixRQUNuQiw0QkFBRyxRQUFxQixRQUN6QiwyQkFBRyxRQUFxQixRQUM3QixzQkFBRyxRQUFxQixRQUM1QixrQkFBRyxRQUFxQixRQUNWLGdDQUFHLFFBQXFCLFFBQ25DLHFCQUFHLFFBQXFCLFFBQ3ZCLHNCQUFHLFFBQXFCLFFBQ3hCLHNCQUFHLFFBQXFCLFFBQzVCLGtCQUFHLFFBQXFCLFFBQ2hCLDBCQUFHLFFBQXFCLFFBQzFCLHdCQUFHLFFBQXFCLFFBQy9CLGlCQUFHLFFBQXFCLFFBQ1osNkJBQUcsUUFBcUIsUUFDL0Isc0JBQUcsUUFBcUIsUUFDaEIsOEJBQUcsUUFBcUIsUUFDeEIsOEJBQUcsUUFBcUIsUUFDcEMsa0JBQUcsUUFBcUIsUUFDekIsaUJBQUcsUUFBcUIsUUFDeEIsaUJBQUcsUUFBcUIsUUFDdkIsa0JBQUcsUUFBcUIsUUFDckIscUJBQUcsUUFBcUIsUUFDakIsNEJBQUcsUUFBcUIsUUFDbEMsa0JBQUcsUUFBcUIsUUFDeEIsa0JBQUcsUUFBcUIsUUFDbEIsd0JBQUcsUUFBcUIsUUFDOUIsa0JBQUcsUUFBcUIsUUFDM0IsZUFBRyxRQUFxQixRQUN0QixpQkFBRyxRQUFxQixRQUNsQix1QkFBRyxRQUFxQixRQUN0Qix5QkFBRyxRQUFxQixRQUMvQixrQkFBRyxRQUFxQixRQUMzQixlQUFHLFFBQXFCLFFBQ2pCLHNCQUFHLFFBQXFCLFFBQzVCLGtCQUFHLFFBQXFCLFFBQ3hCLGtCQUFHLFFBQXFCLFFBQ3RCLG9CQUFHLFFBQXFCLFFBQy9CLGFBQUcsUUFBcUIsUUFDdEIsZUFBRyxRQUFxQixRQUNwQixtQkFBRyxRQUFxQixRQUN2QixvQkFBRyxRQUFxQixvRVp0a0J2QyxLQUNGLFlBQWEsV0FDYixxQkFBMkIsS0FDM0IseUJBQStCLEtBb0JqQyxRQUNBLE1BQ0EsUUFDQSxXQUNBLE9BQ0EsT0FDQSxPQUNBLE9BQ0EsS0FDQSxJQUNBLFFBQ08sUUFDTCxRQUFTLE1BUVgsTUFDQSxPQUNBLFNBQ0ssTUFDSCxRQUFTLGFBQ1QsZUFBeUIsU0FRaEIsc0JBQ1QsUUFBUyxLQUNULE9BQVEsRUFRVCxTQUNPLFNBQ04sUUFBUyxLQVVWLEVBQ0MsZUFPRCxTQUNNLFFBQ0wsUUFBUyxFQVVOLFlBQ0gsY0FBZSxJQUFBLE9BZ0JkLElBQ0QsV0FBWSxPQWlCVixLQUNGLFdBQVksS0FDWixNQUFPLEtBZVQsSUFDRyxJQUNELFVBQVcsSUFDWCxZQUFhLEVBRWIsZUFBZ0IsU2NuR1QsUWRxSE4sSWV4SkQsZUFBZ0IsT2Z5SWYsSUFDRCxJQUFLLE1BR0osSUFDRCxPQUFRLE9BVVAsSUFDRCxPQUFRLEVDNUVOLFVBQVcsS0FDWCxPQUFRLEtBQ1IsdUJBQXdCLFFBR3hCLFFBQVMsYUQ4RUEsZUFDWCxTQUFVLE9BVU4sT0FDSixPQUFRLElBQUEsS0FPUixHQUNBLGdCQUFpQixZQUNqQixXQUFZLFlBUVgsSUFrTEssU0FqTE4sU0FBVSxLQU9aLEtBQ0EsSUFDQSxJQUNJLEtBQ0YsWUFBYSxVQUFBLFVBQ2IsVUFBVyxJQWtCYixPQUNBLE1BQ0EsU0FDQSxPQUNRLFNBQ04sTUFBTyxRQUNQLEtBQWMsUUFDZCxPQUFVLEVDektOLEtHdUZILEVIakZDLFlBOURpQixJRHdPZixPQUNKLFNBQVUsUUFVWixPQUNNLE9BQ0osZUFBZ0IsS0FXbEIsT0FDVyx3QkFDTCxrQkFDZSxtQkFDbkIsbUJBQW9CLE9BQ3BCLE9BQWdCLFFBZ0JaLHlCQUNpQix3QkFDckIsT0FBUSxFQUNSLFFBQVMsRUFRTixNQUNILFlBQWEsT0FXVCxxQkFDYyxrQkFDbEIsV0FBWSxXQUNaLFFBQVcsRUFTa0MsOENBQ0MsOENBQzlDLE9BQVEsS0FTVyxtQkFFbkIsZ0JBQTZCLFlBQzdCLG1CQUFvQixZR2xQcEIsV0FBWSxXSDRQb0MsaURBQ0YsOENBQzlDLG1CQUFvQixLQU9kLFNBQ04sT0FBUSxJQUFBLE1BQUEsT0FDUixPQUFRLEVBQUEsSUFDUixRQUFTLE1BQUEsT0FBQSxNQVFMLE9BQ0osT0FBUSxFQUNSLFFBQVcsRUEyQlIsTUFDSCxnQkFBaUIsU0FDakIsZUFBZ0IsRWdCOVFLLHdCQUNyQixZQUNELFFBQ2lCLG1CQUNoQixZQUFhLCtEZjlFSCxLQUFWLEtBQ0UsT0FBUSxLQUNSLFVBdERhLEtBeURYLEtBQ0YsV0FBWSxXQUVkLEVBQW9CLE9BQWhCLFFBQ0YsV0FBWSxRQUlWLEtBQ0YsV0FyRGMsS0FzRGQsTUFyRGMsS0FzRGQsUUFBUyxFQUNULE9BQVEsRUFDUixZQXZEdUQsaUJBQVMsVUFBVCxVQUFPLE1BQUUsV0F5RGhFLFdBdkRjLE9Bd0RkLFlBQWEsRUFJWCx1QkFBd0IsWUFDeEIsd0JBQXlCLFVBZ0J6QixVQUFzQixXQUFYLFVBQXVCLFlBQXRDLEVBQ0UsT0FBUSxRQU1SLGtCQURBLGdCQUVBLG1CQURBLGtCQURBLGdCQUVNLG1CQUFHLFVBQVcsZUFHZCxTQUNOLFFBckVhLEthS1IsUUFDTCxNQUFPLEtBQ1AsT0FBUSxLQUZILFVBT0gsV0FBWSxLQUNaLGFBQWMsT0FJVCxVQUlpQixnQ0F0RHpCLHdCQVd5Qiw4Q0FYekIsWUFXeUIsa0NBVnhCLEtiZ0JZLFFhVFYsT2JTVSxRYWpCYix3QkFXeUIsOENBVnhCLEtib0JZLFFhYlYsT2JhVSxRYXJCYix3QkFXeUIsOENBVnhCLEticUJZLFFhZFYsT2JjVSxRYXRCYixzQkFXeUIsNENBVnhCLEtia0JVLFFhWFIsT2JXUSxRYW5CWCxxQkFXeUIsMkNBVnhCLEtic0JTLFFhZlAsT2JlTyxRYXZCViwwQkFXeUIsZ0RBVnhCLEtiaUJjLFFhVlosT2JVWSxRQzBLTyx3QkFDckIsU0FBVSxTQUNWLFFBQVMsYUFFRixnQ0FDTCxZQUFhLEVBQ2IsYUFBYyxFQUdMLGNBekliLFNBQVUsTUFDVixLQUFNLEVBQ04sUUFBUyxLQUNULE1BQU8sS0FDUCxRRC9CZSxLQ2dDZixXQWxGdUIsS0FtRnZCLFdBQVksT0FDWixvQkFsRjZCLFVBQUMsUUFtRjlCLG9CQWxGNEIsS0FtRjVCLDJCQUE0QixTQUcxQixXQW5Ga0IsRUFBSyxLQUFLLEtBQU0sZ0JBd0ZsQyxPQUFRLEVBQ1IsVUFBVyxpQkFFQSx3QkFDVCxVQUFXLGNBdkViLGlCQUNBLE9BQ1ksRURxQkMsTUFBQSxNQ25CYixZQUFhLEtBR0EsNkJBQ1gsV0RlVyxNQ2JHLDRDQUNaLFdBQVksRUFLZixtQkFDQyxRQUFTLE1BQ1QsUUFBUyxNQUNULFlBQWEsRUFDYixNQW5DbUIsS0FvQ25CLFdBQWUsSUFBTSxNQS9DQSxLQWlEZCx5QkFDTCxNQXZDaUIsS0F3Q2pCLFdldUVFLFFmbkVJLDBCQUNSLE1EckJRLFFDdUJHLDZCQUNYLGVBQWdCLEtBQ2hCLE1BQU8sS2M2Q3VCLHdDZDRHckIsY0FPSixrQkEvRlQsY0F6SG1CLElnQjBzRGIsV0FFSCxFaEIza0RELEVBQUEsS0E1SHFDLGdCQTBJcEIseUJBQWxCLDBCQUFrQixxQkFBbEIsc0JBQ0MsUUFBWSxHQUNaLFNBQVUsU0FDVixLQUFNLElBQ04sUUFBUyxNQUVULE9BQVEsRUFDUixZQW5Kd0IsS0FtSkssTUFBQyxZQUM5QixhQXBKd0IsS0FvSk0sTUFBQyxZQUMvQixZQXJKb0IsTUE4TVQsY2dCKzdDVCxTaEIxaERKLFNBQ0EsS0FBTSxJQUNOLE1BekhrQixNQTJIbEIsUUFBUyxFQUNULGVBQWdCLEtBaUJoQixJQW1CRSxLQUNBLE9BQVEsRUFDUixVQUFxQixpQkFBTyxpQkExQm5CLHdCQUNULFFBQVMsRUFDVCxlQUFnQixLQTBCZCxVQUFxQixpQkFBTyxpQkFwQmIscUJBQWxCLHNCQUtDLE1BQU8sRUFtQkwsSUFwS2tCLE1BcUtsQixPQUFRLEtBQ1IsV0FBWSxFQUNaLGNBdktzQixLQXVLUyxNQS9LWixLQWlMWixzQkFDUCxJQUFPLE1BQ1Asb0JBQTBCLGdCQTBDckIsa0JnQnkrQ0gsU2hCM2tETixTQUNBLEtBQU0sSUFDTixNQXpIa0IsTUEySGxCLFFBQVMsRUFDVCxlQUFnQixLQWlCaEIsSWdCMGtERyxFaEJsaURELE9BQVEsS0FDUixVQUFxQixpQkFBTyxrQkE5Q25CLDRCQUNULFFBQVMsRUFDVCxlQUFnQixLQThDZCxVQUFxQixpQkFBTyxrQkF4Q2IseUJBQWxCLDBCQUtDLE1BQU8sRUF1Q0wsSUFBSyxLQUNMLE9BekxrQixNQTBMbEIsV0ExTHNCLEtBMExNLE1BbE1ULEtBbU1uQixjQUFlLEVBRVIsMEJBQ1AsT0FBVSxNQUNWLGlCQUF1QixpQmlCN0l0QixNQUlRLGNBbkNiLFdBckJhLEVBQUksSUFBSSxJQUFNLGVBc0IzQixTQUFVLE9qQnNNQyxzQkFDUCxXRGpNVSxRQ2tNVixNZTlIdUMsS2YrSHZDLE9BQVEsRUFDQyw4QkFBRyxRQUFTLEtBQ0YsNkJBTFosOEJBS2UsaUJEck1aLFFDc01pQixpQ0FBdEIsa0NBQXlCLG9CRHRNcEIsUUNQWix5QkFDQSxPQUNZLEVEcUJDLE1BQUEsTUNuQmIsWUFBYSxLQUdBLHFDQUNYLFdEZVcsTUNiRyxvREFDWixXQUFZLEVBS2YsMkJBQ0MsUUFBUyxNQUNULFFBQVMsTUFDVCxZQUFhLEVBQ2IsTWV1RHVDLEtmdER2QyxXQUFlLElBQU0sTWUyRWpCLFFmekVHLGlDQUNMLE1lbURxQyxLZmxEckMsV2V1RUUsUWZuRUksa0NBQ1IsTURyQlEsUUN1QkcscUNBQ1gsZUFBZ0IsS0FDaEIsTUFBTyxLQW1MSCxtQkFDSixXRHpNTyxRQzBNUCxNZTVJdUMsS2Y2SXZDLE9BQVEsRUFDQywyQkFBRyxRQUFTLEtBQ0YsMEJBTGYsMkJBS2tCLGlCRDdNZixRQzhNb0IsOEJBQXRCLCtCQUF5QixvQkQ5TXZCLFFDYlQsc0JBQ0EsT0FDWSxFRHFCQyxNQUFBLE1DbkJiLFlBQWEsS0FHQSxrQ0FDWCxXRGVXLE1DYkcsaURBQ1osV0FBWSxFQUtmLHdCQUNDLFFBQVMsTUFDVCxRQUFTLE1BQ1QsWUFBYSxFQUNiLE1ldUR1QyxLZnREdkMsV0FBZSxJQUFNLE1lMkVqQixRZnpFRyw4QkFDTCxNZW1EcUMsS2ZsRHJDLFdldUVFLFFmbkVJLCtCQUNSLE1EckJRLFFDdUJHLGtDQUNYLGVBQWdCLEtBQ2hCLE1BQU8sS0huQlQsZUFDQSxZQUFhLEVBMlJKLFlBblNYLGNBQWUsS0FDZixZQUFhLEVBQ2IsWUFBYSxLQWNiLFVBekNtQixLQTRDakIsWUVKYSxNRktiLGFFTGEsTUY0TXNNLCtCQUFpQiwrQkFBdk0sNkJBQXdCLGlDQUFvQiw2QkFBd0IsaUNBQXdCLHVDQUFzQiw4QkFBb0IsNkJBQTBCLDhCQUEwRCw0QkFBb0IsNkJBQW1CLDRCQUFoUyw4QkFBdVQscUJBQ3JULE9BQVEsRUFDUixPQUFRLEVBQ1IsWUFBYSxFQUNiLE9BQVEsS0FDUixRQXZQMkIsTUFBQyxLQXdQNUIsTUFBTyxRQU40TSxxQ0FBdEIscUNBQXVDLHFDQUFqQixxQ0FBdEwsbUNBUW5CLG1DQVIyQyx1Q0FBeEIsdUNBQTRDLG1DQVEvRCxtQ0FSdUYsdUNBQXhCLHVDQUFnRCw2Q0FBOUIsNkNBQW9ELG9DQUFoQixvQ0FBb0MsbUNBUXpKLG1DQVJtTCxvQ0FBckIsb0NBUXZLLGtDQUFTLGtDQUFULG1DQUFTLG1DQUFULGtDQUFTLGtDQWdFWixvQ0F4RXFTLG9DQVFuUiwyQkFScVMsMkJBU25ULE9BQVEsRUFLNEIsb0NBQWMsaUNBQ3BELFNBQVUsU0FDVixLQUFNLFFBRmdDLDBDQUk1Qix1Q0FDUixRQUFTLE1BQ1QsVUF4UWUsS0F5UWYsT0FBUSxFQVA0QiwwREFZeEIsdURxQjFSaEIsaUJBQWtCLG1VckI0UlYsUUFBWSxHQUNaLGdCQUFpQixLQUFBLEtBQ2pCLE1BQU8sTUFDUCxPQUFRLE1BQ1IsTUU1UE0sUUY2UE4sTUFBTyxNQUNQLGVBQWdCLEtBQ2hCLFdBQVksT3FCaFNNLGtDckIyUWMsMERBWXhCLHVEcUJyUlosaUJBQWtCLGl4QnJCcVNSLDJCQUNaLE1BQU8sUUFFRCxrQ0FJSixRQUFTLEVBQ1QsV0FBWSxFQUNaLE9BQVEsRUFDUixPQUFRLEtBQ1IsUUF2U3lCLE1BQUMsS0F3UzFCLE9BQVEsRUFDUixVQUFXLElBQ1gsWUFBYSxFQUNiLE1BQU8sUUFNSixvQkFDTCxTQUFVLFNBQ1YsSUFBSyxJQUNMLE1BcFQ0QixLQXFUNUIsVUFBVyxpQkFyR1QsNEJBQWtCLGdDQUFiLCtCQUNMLGFBQWUsT0FFTCxrQ0FBWiw4QkFDRSxTQUFVLFNBQ1YsSUFSVyxPQVNYLEtBVFcsT0FVWCxNQVhVLFFBWVYsT0FaVSxRQWFWLGNBQWUsSUFDZixlQUFnQixLQXFHWixtQkFuUVIsV0FBWSxJQUNaLE1rQmtEUSxLbEJoRFIsY0FBZSxLQUNmLFlBaEU4QixLQWlFOUIsVUF4RDBCLEtBeUQxQixPQUFRLFFBQ1MsZUFBZ0IsVUE4UDdCLGVBeE9KLFNBQVUsU0FHUixjQXhGdUIsSUFBTSxNa0IyR3ZCLFFsQmxCTywyQkFDWCxXQTFGcUIsSUFBTSxNa0IyR3ZCLFFsQlpOLGlCQUFrQixxQkFBYixvQkFDTCxRQUFTLE1BQ1QsUUFyRzJCLE1BQUMsS0F1RzVCLE1BdEdvRCxLQXVHcEQsWUFBYSxFQUtiLGlCQUFVLHFCQUNWLE9BQVEsUUFEUCx1QkFHTSwyQkFDTCxNQWhIa0QsS0FvSDdDLDRCQUROLHVCQUFTLDJCQUVSLFdrQlBJLFFsQllJLHlCQUNBLCtCQUFHLE1FcEdILFFGc0dFLDBCQUNaLE9BQVEsUUFERywwQkFFRCxnQ0FBRyxNQTdIZSxLQThIckIsZ0NBQUcsZUF3Q0osbUNBQ04sUUFBaUIsUUFDakIsUUFBUyxNQUNULFNBQVUsU0FDVixNQTdLNEIsS0E4SzVCLElBQUssSUFDTCxVQUFXLGlCQUNYLFlBQWEsSUFDYixNa0JsRU0sS2xCbUVOLFVBQVcsSUFLSSw4Q0FDZixjQUFlLE9BNklJLGlDQXBMckIsUUFBUyxhQUNULE1BQU8sTUFDUCxRQUFTLEVBQ1QsTUE5STJCLEtBK0kzQixlQUFnQixLQUVWLHNDQUNKLFlBeEpxQixNQXlKckIsTUFBTyxLZ0JKVCxRVnBKSSxtQkFBb0Isd0JBQWYsdUJVQVQsT0FBUSxFQUNSLFdBQVksT0FDWixZQUFhLEVBQ2IsT0FBUSxRQUNSLG1CQUFvQixLQUNwQix1QkFBd0IsWUFDeEIsV0FBWSxXQUFBLEtBQUEsU0FDWixlQUFnQixPQUVoQixRQTdCcUIsTUFBQyxJQWdDdEIsY0ExQmMsRVZ1TFIsNEJBQW9CLGlDQUFmLGdDVUtDLGlCQS9DWixRQXJJd0IsR0FzSXhCLE9BQVEsUU1oSVIsZUFBZ0IsS05vSlQsUUFwSFAsVUFETyxNQTBCTCxRQUFTLGFBQ1QsTUFBTyxLQUNQLE9BOUVhLEVkd0RJLEtBQUEsS2N4RDZCLEVBMkc5QyxXZG5FWSxRY29FWixNRUF5QyxLRmxEbEMsZ0JBQUEsc0JBQUEsc0JBQUEscUJBQ0wsTUFBTyxJQUdQLGFBQWMsTUFDZCxXQUFZLEtWdkJaLE9BQVEsSUZtRFosZUFBZ0IsT1ltQkUsY0FBZixjQUtHLFdBaEhrQixRQWtIcEIsTUVUdUMsS0hyRjFDLGtCQVd5Qix3Q0FWeEIsS0dvRnlDLEtIN0V2QyxPRzZFdUMsS0Y4RG5DLGFBdkhSLFVBRE8sT0F5SEUsY0F4SFQsVUFETyxPQTBIRSxjQXpIVCxVQURPLFFBMkhHLGVBdkdSLFFBQVMsTUFDVCxNQUFPLEtBQ1AsWUFBYSxFQUNiLGFBQWMsRUFzR0gsa0JBcEVYLFdkbEVjLFFjbUVkLE1FQThCLEtGRWQsd0JBQWYsd0JBRUcsV0FBWSxRQUtkLE1FVDRCLEtIckYvQiw0QkFXeUIsa0RBVnhCLEtHb0Y4QixLSDdFNUIsT0c2RTRCLEtIckYvQix3QkFXeUIsOENBWHpCLDBCQVd5QixnREFYekIsMEJBV3lCLGdEQVZ4QixLR29GeUMsS0g3RXZDLE9HNkV1QyxLRm9FaEMsZ0JBckVULFdkL0RZLFFjZ0VaLE1FQXlDLEtGRXpCLHNCQUFmLHNCQUVHLFdBQVksUUFLZCxNRVR1QyxLRnFFaEMsZ0JBdEVULFdkOURZLFFjK0RaLE1FQXlDLEtGRXpCLHNCQUFmLHNCQUVHLFdBQVksUUFLZCxNRVR1QyxLRnNFbEMsY0F2RVAsV2RqRVUsUWNrRVYsTUVBeUMsS0ZFekIsb0JBQWYsb0JBRUcsV0FBWSxRQUtkLE1FVHVDLEtGdUVuQyxhQXhFTixXZGhFUyxRY2lFVCxNRUE4QixLRkVkLG1CQUFmLG1CQUVHLFdBQVksUUFLZCxNRVQ0QixLSHJGL0IsdUJBV3lCLDZDQVZ4QixLR29GOEIsS0g3RTVCLE9HNkU0QixLRndFeEIsYUF6RU4sV2Q3RFMsUWM4RFQsTUVBeUMsS0ZFekIsbUJBQWYsbUJBRUcsV0FBWSxRQUtkLE1FVHVDLEtIckYxQyx1QkFXeUIsNkNBVnhCLEtHb0Z5QyxLSDdFdkMsT0c2RXVDLEtGMkUvQixlQTVGVixPQUFXLElBQU0sTWRuREwsUWNvRFosZUFDQSxNZHJEWSxRY3VESSxxQkFBZixxQkFDQyxhQUFjLFFBQ2QsZUFDQSxNQUFPLFFEM0VWLHlCQVd5QiwrQ0FWeEIsS2JnQlksUWFUVixPYlNVLFFhakJiLCtCQVd5QixxREFWeEIsS0M4R3dCLFFEdkd0QixPQ3VHc0IsUUFrRFQseUJBN0ZmLE9BQVcsSUFBTSxNZGxESCxRY21EZCxlQUNBLE1kcERjLFFjc0RFLCtCQUFmLCtCQUNDLGFBQWMsUUFDZCxlQUNBLE1BQU8sUUQzRVYsbUNBV3lCLHlEQVZ4QixLYmlCYyxRYVZaLE9iVVksUWFsQmYseUNBV3lCLCtEQVZ4QixLQzhHd0IsUUR2R3RCLE9DdUdzQixRQW1EWCx1QkE5RmIsT0FBVyxJQUFNLE1kL0NMLFFjZ0RaLGVBQ0EsTWRqRFksUWNtREksNkJBQWYsNkJBQ0MsYUFBYyxRQUNkLGVBQ0EsTUFBTyxRRDNFVixpQ0FXeUIsdURBVnhCLEtib0JZLFFhYlYsT2JhVSxRYXJCYix1Q0FXeUIsNkRBVnhCLEtDOEd3QixRRHZHdEIsT0N1R3NCLFFBb0RYLHVCQS9GYixPQUFXLElBQU0sTWQ5Q0wsUWMrQ1osZUFDQSxNZGhEWSxRY2tESSw2QkFBZiw2QkFDQyxhQUFjLFFBQ2QsZUFDQSxNQUFPLFFEM0VWLGlDQVd5Qix1REFWeEIsS2JxQlksUWFkVixPYmNVLFFhdEJiLHVDQVd5Qiw2REFWeEIsS0M4R3dCLFFEdkd0QixPQ3VHc0IsUUFxRGIscUJBaEdYLE9BQVcsSUFBTSxNZGpEUCxRY2tEVixlQUNBLE1kbkRVLFFjcURNLDJCQUFmLDJCQUNDLGFBQWMsUUFDZCxlQUNBLE1BQU8sUUQzRVYsK0JBV3lCLHFEQVZ4QixLYmtCVSxRYVhSLE9iV1EsUWFuQlgscUNBV3lCLDJEQVZ4QixLQzhHd0IsUUR2R3RCLE9DdUdzQixRQXNEZCxvQkFqR1YsT0FBVyxJQUFNLE1kaERSLFFjaURULGVBQ0EsTWRsRFMsUWNvRE8sMEJBQWYsMEJBQ0MsYUFBYyxRQUNkLGVBQ0EsTUFBTyxRRDNFViw4QkFXeUIsb0RBVnhCLEtibUJTLFFhWlAsT2JZTyxRYXBCVixvQ0FXeUIsMERBVnhCLEtDOEd3QixRRHZHdEIsT0N1R3NCLFFBdURkLG9CQWxHVixPQUFXLElBQU0sTWQ3Q1IsUWM4Q1QsZUFDQSxNZC9DUyxRY2lETywwQkFBZiwwQkFDQyxhQUFjLFFBQ2QsZUFDQSxNQUFPLFFEM0VWLDhCQVd5QixvREFWeEIsS2JzQlMsUWFmUCxPYmVPLFFhdkJWLG9DQVd5QiwwREFWeEIsS0M4R3dCLFFEdkd0QixPQ3VHc0IsUVZxQmIsY0FwSmIsT0FBUSxFQUFBLEVBQ08sS0FJZixTQUFVLE9BQ1YsVVVEaUIsTVZPYixtQkFBb0Isd0JBQWYsdUJBRUwsY0FBZSxFQUNmLFVBQVcsUUFDWCxRQUFTLE1BQ1QsT0FBUSxFQUVLLDZCQUNiLFlBQWEsRUFJWCxvQ0FBb0IseUNBQWYsd0NBQ0wsYUFBaUIsSUFBTSxNQUFDLFFBTXJCLHNCQUNMLE1BQU8sSUFDUCxPQUFRLElBQ1IsZUFBZ0IsT0FDaEIsYUFBYyxNQUNkLFdBQVksS0FnSEgsd0JBc0JGLDhCQUpFLGtDQUFBLGdDQUFBLGdDQTVIYixPQUFXLElBQU0sTUpUSCxRSVVkLG9CQUFxQixXQUFBLE1pQnlEcEIsc0JBQ2UsNEJBRGYsc0JBQ2UsNEJBRGYsdUJBQ2UsNkJBRGYsb0JBQ2UsMEJBQUgsNEJBRFoseUJBQ1ksMEJBRFosdUJBQ1ksMkJBRFosd0JBQ1ksd0JBRFoscUJBWEQsb0JBakR3QixJQWtEeEIsMkJBbENNLEtBbUNOLGlCQXpCcUIsRUE4Rm5CLG9CQUFxQixVQUFBLFFqQmpIQyw2Q0FDcEIsU0FBVSxTQUNWLEtBQU0sUUFHTixtQ0FBb0Isd0NBQWYsdUNBQUwsdUNBQWMsNENBQVQsMkNBQUwscUNBQWMsMENBQVQseUNBQUwscUNBQWMsMENBQVQseUNBQUwsNkJBQWMsa0NBQVQsaUNBQ0wsYUFBYyxFQUNkLGVBOEZTLGNBaEZiLFFBQTRCLFlBNEU1QixjVWxKYyxFVndFVixpQkFDRixLQUF1QixFQUFFLEVBQUMsS0FldEIsbUJBQW9CLHdCQUFmLHVCVWNULFdkbkVZLFFjb0VaLE1Wc0NNLEtBbkRGLGFBQWMsUVVlUix5QkFBVCx5QkFBZSw4QkFBZiw4QkFBUyw2QkFBVCw2QkFFRyxXQUFZLFFBS2QsTVY2QkksS1MzSFIsNkJBQUMsbURBQUEsa0NBV3lCLHdEQVgxQixpQ0FBQyx1REFDQyxLVDBITSxLU25ISixPVG1ISSxLQWhEQSw2QkFBb0Isa0NBQWYsaUNBQ0wsV0FBWSxRQU5kLDZCQUFvQixrQ0FBZixpQ1VjVCxXZGxFYyxRY21FZCxNRUE4QixLWmIxQixhQUFjLFFVZVIsbUNBQVQsbUNBQWUsd0NBQWYsd0NBQVMsdUNBQVQsdUNBRUcsV0FBWSxRQUtkLE1FVDRCLEtIckZoQyx1Q0FBQyw2REFBQSw0Q0FXeUIsa0VBWDFCLDJDQUFDLGlFQUNDLEtHb0Y4QixLSDdFNUIsT0c2RTRCLEtIckZoQyxtQ0FBQyx5REFBQSx3Q0FXeUIsOERBWDFCLHVDQUFDLDZEQUFELHFDQUFDLDJEQUFBLDBDQVd5QixnRUFYMUIseUNBQUMsK0RBQUQscUNBQUMsMkRBQUEsMENBV3lCLGdFQVgxQix5Q0FBQywrREFDQyxLR29GeUMsS0g3RXZDLE9HNkV1QyxLWlZuQyx1Q0FBb0IsNENBQWYsMkNBQ0wsV0FBWSxRQU5kLDJCQUFvQixnQ0FBZiwrQlVjVCxXZC9EWSxRY2dFWixNRUF5QyxLWmJyQyxhQUFjLFFVZVIsaUNBQVQsaUNBQWUsc0NBQWYsc0NBQVMscUNBQVQscUNBRUcsV0FBWSxRQUtkLE1FVHVDLEtaVm5DLHFDQUFvQiwwQ0FBZix5Q0FDTCxXQUFZLFFBTmQsMkJBQW9CLGdDQUFmLCtCVWNULFdkOURZLFFjK0RaLE1FQXlDLEtaYnJDLGFBQWMsUVVlUixpQ0FBVCxpQ0FBZSxzQ0FBZixzQ0FBUyxxQ0FBVCxxQ0FFRyxXQUFZLFFBS2QsTUVUdUMsS1pWbkMscUNBQW9CLDBDQUFmLHlDQUNMLFdBQVksUUFOZCx5QkFBb0IsOEJBQWYsNkJVY1QsV2RqRVUsUWNrRVYsTUVBeUMsS1pickMsYUFBYyxRVWVSLCtCQUFULCtCQUFlLG9DQUFmLG9DQUFTLG1DQUFULG1DQUVHLFdBQVksUUFLZCxNRVR1QyxLWlZuQyxtQ0FBb0Isd0NBQWYsdUNBQ0wsV0FBWSxRQW1FQSw2QkFBb0Isa0NBQWYsaUNVM0R2QixXZGxFYyxRY21FZCxNRUE4QixLRmM5QixhZGpGYyxRY3FFSixtQ0FBVCxtQ0FBZSx3Q0FBZix3Q0FBUyx1Q0FBVCx1Q0FFRyxXQUFZLFFBS2QsTUVUNEIsS0ZnQjVCLGFBQWMsUURyR2xCLHVDQUFDLDZEQUFBLDRDQVd5QixrRUFYMUIsMkNBQUMsaUVBQ0MsS0dvRjhCLEtIN0U1QixPRzZFNEIsS0hyRmhDLG1DQUFDLHlEQUFBLHdDQVd5Qiw4REFYMUIsdUNBQUMsNkRBQUQscUNBQUMsMkRBQUEsMENBV3lCLGdFQVgxQix5Q0FBQywrREFBRCxxQ0FBQywyREFBQSwwQ0FXeUIsZ0VBWDFCLHlDQUFDLCtEQUNDLEtHb0Z5QyxLSDdFdkMsT0c2RXVDLEtaMkR2QiwyQkFBb0IsZ0NBQWYsK0JVNUR2QixXZC9EWSxRY2dFWixNRUF5QyxLRmN6QyxhZDlFWSxRY2tFRixpQ0FBVCxpQ0FBZSxzQ0FBZixzQ0FBUyxxQ0FBVCxxQ0FFRyxXQUFZLFFBS2QsTUVUdUMsS0ZnQnZDLGFBQWMsUVY0Q0UsMkJBQW9CLGdDQUFmLCtCVTdEdkIsV2Q5RFksUWMrRFosTUVBeUMsS0ZjekMsYWQ3RVksUWNpRUYsaUNBQVQsaUNBQWUsc0NBQWYsc0NBQVMscUNBQVQscUNBRUcsV0FBWSxRQUtkLE1FVHVDLEtGZ0J2QyxhQUFjLFFWNkNFLHlCQUFvQiw4QkFBZiw2QlU5RHZCLFdkakVVLFFja0VWLE1FQXlDLEtGY3pDLGFkaEZVLFFjb0VBLCtCQUFULCtCQUFlLG9DQUFmLG9DQUFTLG1DQUFULG1DQUVHLFdBQVksUUFLZCxNRVR1QyxLRmdCdkMsYUFBYyxRVmlETCx3QkFsRVgsYUpuRVksUUl1RVIsNkJBQW9CLGtDQUFmLGlDQUNMLGFKeEVRLFFJeUVSLE1KekVRLFFJdUVQLG1DQUtNLHdDQUxHLHVDQU1SLFdKN0VNLG1CSThFTixNSjlFTSxRYWpCZCx1Q0FBQyw2REFBQSw0Q0FXeUIsa0VBWDFCLDJDQUFDLGlFQUNDLEtiZ0JZLFFhVFYsT2JTVSxRSXVGSSx1Q0FBQyw2Q0FDRywrQ0FDTixxREFDUixXSjFGTSxRSTJGTixNWXZCbUMsS0hyRjNDLGlEQUFDLHVFQUFBLHlEQVd5QiwrRUFWeEIsS0dvRnlDLEtIN0V2QyxPRzZFdUMsS1prRTVCLGtDQW5FYixhSmxFYyxRSXNFVix1Q0FBb0IsNENBQWYsMkNBQ0wsYUp2RVUsUUl3RVYsTUp4RVUsUUlzRVQsNkNBS00sa0RBTEcsaURBTVIsV0o1RVEsc0JJNkVSLE1KN0VRLFFhbEJoQixpREFBQyx1RUFBQSxzREFXeUIsNEVBWDFCLHFEQUFDLDJFQUNDLEtiaUJjLFFhVlosT2JVWSxRSXNGRSxpREFBQyx1REFDRyx5REFDTiwrREFDUixXSnpGUSxRSTBGUixNWXZCd0IsS0hyRmhDLDJEQUFDLGlGQUFBLG1FQVd5Qix5RkFWeEIsS0dvRjhCLEtIN0U1QixPRzZFNEIsS1ptRW5CLGdDQXBFWCxhSi9EWSxRSW1FUixxQ0FBb0IsMENBQWYseUNBQ0wsYUpwRVEsUUlxRVIsTUpyRVEsUUltRVAsMkNBS00sZ0RBTEcsK0NBTVIsV0p6RU0scUJJMEVOLE1KMUVNLFFhckJkLCtDQUFDLHFFQUFBLG9EQVd5QiwwRUFYMUIsbURBQUMseUVBQ0MsS2JvQlksUWFiVixPYmFVLFFJbUZJLCtDQUFDLHFEQUNHLHVEQUNOLDZEQUNSLFdKdEZNLFFJdUZOLE1ZdkJtQyxLSHJGM0MseURBQUMsK0VBQUEsaUVBV3lCLHVGQVZ4QixLR29GeUMsS0g3RXZDLE9HNkV1QyxLWm9FOUIsZ0NBckVYLGFKOURZLFFJa0VSLHFDQUFvQiwwQ0FBZix5Q0FDTCxhSm5FUSxRSW9FUixNSnBFUSxRSWtFUCwyQ0FLTSxnREFMRywrQ0FNUixXSnhFTSxxQkl5RU4sTUp6RU0sUWF0QmQsK0NBQUMscUVBQUEsb0RBV3lCLDBFQVgxQixtREFBQyx5RUFDQyxLYnFCWSxRYWRWLE9iY1UsUUlrRkksK0NBQUMscURBQ0csdURBQ04sNkRBQ1IsV0pyRk0sUUlzRk4sTVl2Qm1DLEtIckYzQyx5REFBQywrRUFBQSxpRUFXeUIsdUZBVnhCLEtHb0Z5QyxLSDdFdkMsT0c2RXVDLEtacUVoQyw4QkF0RVQsYUpqRVUsUUlxRU4sbUNBQW9CLHdDQUFmLHVDQUNMLGFKdEVNLFFJdUVOLE1KdkVNLFFJcUVMLHlDQUtNLDhDQUxHLDZDQU1SLFdKM0VJLG9CSTRFSixNSjVFSSxRYW5CWiw2Q0FBQyxtRUFBQSxrREFXeUIsd0VBWDFCLGlEQUFDLHVFQUNDLEtia0JVLFFhWFIsT2JXUSxR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ZGUsT01kVyx3Q05xQlgsa0JBQ2YsV0FSZSxPTWR1QyxtRU4yQmxDLHVCQUNwQixXQWRlLE1BYU0sd0JBQ3JCLFdBZHNCLFFBT04sbUJBTlYsYUFDVixXQUYwQixPTWQrQixrRU4yQmhDLHdCQUNyQixXQWRzQixRTWRJLHdDTnFCVCxvQkFDakIsV0FSc0IsUU1kZ0MsbUVOMkJoQyx5QkFDdEIsV0Fkc0IsUU1kSSx3Q05xQlYsbUJBQ2hCLFdBUnNCLE9BT0wsb0JBQ2pCLFdBUjhCLFNBT2Isb0JBTlYsY0FDWCxXQUZrQyxRTWR1QixrRU4yQi9CLHlCQUN0QixXQWQ4QixTTWRKLHdDTnFCUixxQkFDbEIsV0FSOEIsU01kd0IsbUVOMkIvQiwwQkFDdkIsV0FkOEIsU01kd0IsbUVOMkJoQyx5QkFDdEIsV0FkOEIsU0NqQ3JCLGdCQUFoQixpQkFBbUIsUUFBYSxJQUFFLFFBQVMsTUQyRC9CLFlBQ1QsTUFBTSxLQURJLGFBQ1YsTUFBTSxNQURHLFlBQ1QsTUFBTSIsImZpbGUiOiJmb3VuZGF0aW9uL2ZvdW5kYXRpb24tY29uZi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gIEJMT0NLIExJU1RcclxuICAtLS0tLS0tLS0tXHJcblxyXG4gIEEgZ2VuZXJpYyBsaXN0IGNvbXBvbmVudCB0aGF0IGNhbiBhY2NvbW9kYXRlIGEgdmFyaWV0eSBvZiBzdHlsZXMgYW5kIGNvbnRyb2xzLlxyXG5cclxuICBGZWF0dXJlczpcclxuICAgLSBJY29uc1xyXG4gICAtIExhYmVsc1xyXG4gICAtIENoZXZyb25zXHJcbiAgIC0gVGV4dCBmaWVsZHNcclxuICAgLSBEcm9wZG93biBtZW51c1xyXG4gICAtIENoZWNrYm94L3JhZGlvIGlucHV0c1xyXG4qL1xyXG5cclxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXHJcbi8vIEJsb2NrIExpc3RcclxuJGJsb2NrbGlzdC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xyXG4kYmxvY2tsaXN0LWZ1bGxibGVlZDogdHJ1ZSAhZGVmYXVsdDtcclxuJGJsb2NrbGlzdC1mb250c2l6ZTogMXJlbSAhZGVmYXVsdDtcclxuXHJcbiRibG9ja2xpc3QtaXRlbS1wYWRkaW5nOiAwLjhyZW0gMXJlbSAhZGVmYXVsdDtcclxuJGJsb2NrbGlzdC1pdGVtLWNvbG9yOiBpc2l0bGlnaHQoJGJsb2NrbGlzdC1iYWNrZ3JvdW5kLCAjMDAwLCAjZmZmKSAhZGVmYXVsdDtcclxuJGJsb2NrbGlzdC1pdGVtLWJhY2tncm91bmQtaG92ZXI6IHNtYXJ0c2NhbGUoJGJsb2NrbGlzdC1iYWNrZ3JvdW5kLCA0LjUlKSAhZGVmYXVsdDtcclxuJGJsb2NrbGlzdC1pdGVtLWNvbG9yLWRpc2FibGVkOiAjOTk5ICFkZWZhdWx0O1xyXG4kYmxvY2tsaXN0LWl0ZW0tYm9yZGVyOiAxcHggc29saWQgc21hcnRzY2FsZSgkYmxvY2tsaXN0LWJhY2tncm91bmQsIDE4LjUlKSAhZGVmYXVsdDtcclxuXHJcbiRibG9ja2xpc3QtaXRlbS1sYWJlbC1jb2xvcjogc2NhbGUtY29sb3IoJGJsb2NrbGlzdC1pdGVtLWNvbG9yLCAkbGlnaHRuZXNzOiA2MCUpICFkZWZhdWx0O1xyXG4kYmxvY2tsaXN0LWl0ZW0taWNvbi1zaXplOiAwLjggIWRlZmF1bHQ7XHJcblxyXG4kYmxvY2tsaXN0LWhlYWRlci1mb250c2l6ZTogMC44ZW0gIWRlZmF1bHQ7XHJcbiRibG9ja2xpc3QtaGVhZGVyLWNvbG9yOiBzbWFydHNjYWxlKCRibG9ja2xpc3QtaXRlbS1jb2xvciwgNDAlKSAhZGVmYXVsdDtcclxuJGJsb2NrbGlzdC1oZWFkZXItdXBwZXJjYXNlOiB0cnVlO1xyXG5cclxuJGJsb2NrbGlzdC1jaGVjay1pY29uczogdHJ1ZSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4vKlxyXG4gIEFkZHMgc3R5bGVzIGZvciBhIGJsb2NrIGxpc3QgY29udGFpbmVyLlxyXG5cclxuICAkZm9udC1zaXplOiBnbG9iYWwgZm9udCBzaXplIGZvciB0aGUgbGlzdC5cclxuICAkZnVsbC1ibGVlZDogd2hlbiBcInRydWVcIiwgdGhlIG1hcmdpbnMgb2YgdGhlIGxpc3QgaW52ZXJ0IHRvIGxpbmUgaXQgdXAgd2l0aCB0aGUgZWRnZSBvZiBhIHBhZGRlZCBlbGVtZW50LlxyXG4qL1xyXG4lYmxvY2stbGlzdC1jb250YWluZXIge1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICYsIHVsIHtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICB9XHJcbiAgdWwge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgfVxyXG59XHJcbkBtaXhpbiBibG9jay1saXN0LWNvbnRhaW5lcihcclxuICAkZm9udC1zaXplOiAkYmxvY2tsaXN0LWZvbnRzaXplLFxyXG4gICRmdWxsLWJsZWVkOiAkYmxvY2tsaXN0LWZ1bGxibGVlZFxyXG4pIHtcclxuICBAZXh0ZW5kICVibG9jay1saXN0LWNvbnRhaW5lcjtcclxuICBmb250LXNpemU6ICRmb250LXNpemU7XHJcblxyXG4gIEBpZiAkZnVsbC1ibGVlZCB7XHJcbiAgICBtYXJnaW4tbGVmdDogLSRnbG9iYWwtcGFkZGluZztcclxuICAgIG1hcmdpbi1yaWdodDogLSRnbG9iYWwtcGFkZGluZztcclxuICB9XHJcbn1cclxuXHJcbi8qXHJcbiAgU3R5bGVzIGJsb2NrIGxpc3QgaGVhZGVycyBvbiB0aGUgc2VsZWN0b3IgeW91IGluY2x1ZGUgdGhpcyBtaXhpbiBpbiAobm9ybWFsbHkgYSA8aGVhZGVyPikuXHJcblxyXG4gICRjb2xvciAtIGNvbG9yIG9mIHRoZSBoZWFkZXIuXHJcbiAgJGZvbnQtc2l6ZSAtIGZvbnQgc2l6ZSBvZiB0aGUgaGVhZGVyLlxyXG4gICRvZmZzZXQgLSBsZWZ0IG1hcmdpbiB0byBhZGQgdG8gdGhlIGhlYWRlciwgdG8gbGluZSBpdCB1cCB3aXRoIHRoZSBsaXN0IGl0ZW1zLlxyXG4qL1xyXG5AbWl4aW4gYmxvY2stbGlzdC1oZWFkZXIoXHJcbiAgJGNvbG9yOiAkYmxvY2tsaXN0LWhlYWRlci1jb2xvcixcclxuICAkZm9udC1zaXplOiAkYmxvY2tsaXN0LWhlYWRlci1mb250c2l6ZSxcclxuICAkdXBwZXJjYXNlOiAkYmxvY2tsaXN0LWhlYWRlci11cHBlcmNhc2UsXHJcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJsb2NrbGlzdC1pdGVtLXBhZGRpbmcsIGxlZnQpXHJcbikge1xyXG4gIG1hcmdpbi10b3A6IDFlbTtcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xyXG4gIG1hcmdpbi1sZWZ0OiAkb2Zmc2V0O1xyXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgQGlmICR1cHBlcmNhc2UgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XHJcbn1cclxuXHJcbi8qXHJcbiAgU3R5bGVzIGJsb2NrIGxpc3QgaXRlbXMgb24gdGhlIHNlbGVjdG9yIHlvdSBpbmNsdWRlIHRoaXMgbWl4aW4gaW4gKG5vcm1hbGx5IGFuIDxsaT4pLlxyXG5cclxuICAkY29sb3IgLSBjb2xvciBvZiBpdGVtcy5cclxuICAkY29sb3ItaG92ZXIgLSBjb2xvciBvZiBpdGVtcyBvbiBob3Zlci5cclxuICAkYmFja2dyb3VuZCAtIGJhY2tncm91bmQgb2YgaXRlbXMuXHJcbiAgJGJhY2tncm91bmQtaG92ZXIgLSBiYWNrZ3JvdW5kIG9mIGl0ZW1zIG9uIGhvdmVyLlxyXG4gICRib3JkZXIgLSBib3JkZXIgYmV0d2VlbiBpdGVtcy5cclxuICAkcGFkZGluZyAtIHBhZGRpbmcgb24gaXRlbXMuXHJcbiovXHJcbkBtaXhpbiBibG9jay1saXN0LWl0ZW0oXHJcbiAgJGNvbG9yOiAkYmxvY2tsaXN0LWl0ZW0tY29sb3IsXHJcbiAgJGNvbG9yLWhvdmVyOiAkYmxvY2tsaXN0LWl0ZW0tY29sb3IsXHJcbiAgJGNvbG9yLWRpc2FibGVkOiAkYmxvY2tsaXN0LWl0ZW0tY29sb3ItZGlzYWJsZWQsXHJcbiAgJGJhY2tncm91bmQ6IHRyYW5zcGFyZW50LFxyXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYmxvY2tsaXN0LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcixcclxuICAkYm9yZGVyOiAkYmxvY2tsaXN0LWl0ZW0tYm9yZGVyLFxyXG4gICRwYWRkaW5nOiAkYmxvY2tsaXN0LWl0ZW0tcGFkZGluZ1xyXG4pIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIEBpZiBoYXN2YWx1ZSgkYm9yZGVyKSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIGJvcmRlci10b3A6ICRib3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBJbm5lciBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBiYXNpYyBzdHlsZXNcclxuICA+IGEsID4gc3BhbiwgPiBsYWJlbCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gICAgcGFkZGluZy1sZWZ0OiBnZXQtc2lkZSgkcGFkZGluZywgbGVmdCk7XHJcbiAgICBjb2xvcjogJGNvbG9yO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgfVxyXG4gID4gc3BhbiB7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgfVxyXG4gID4gYSwgPiBsYWJlbCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG4gID4gYSwgPiBsYWJlbCwgc2VsZWN0IHtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvbG9yaW5nIGNsYXNzZXNcclxuICAmLmNhdXRpb24gPiBhIHtcclxuICAgICYsICY6aG92ZXIgeyBjb2xvcjogJGFsZXJ0LWNvbG9yOyB9XHJcbiAgfVxyXG4gICYuZGlzYWJsZWQgPiBhIHtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICYsICY6aG92ZXIgeyBjb2xvcjogJGNvbG9yLWRpc2FibGVkOyB9XHJcbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cclxuICB9XHJcbn1cclxuXHJcbi8qXHJcbiAgQWRkcyBsYWJlbCBzdHlsZXMgdG8gdGhlIGNsYXNzIHlvdSBpbmNsdWRlIHRoaXMgbWl4aW4gaW4uXHJcblxyXG4gICRjb2xvciAtIGNvbG9yIG9mIHRoZSBsYWJlbC5cclxuICAkbGVmdC1jbGFzcyAtIGV4dHJhIGNsYXNzIHRvIGZsaXAgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBsYWJlbC5cclxuICAkbGVmdC1wYWRkaW5nIC0gbGVmdCBwYWRkaW5nIHRvIHVzZSBmb3IgbGVmdC1oYW5kIGxhYmVscy5cclxuKi9cclxuQG1peGluIGJsb2NrLWxpc3QtbGFiZWwoXHJcbiAgJGNvbG9yOiAkYmxvY2tsaXN0LWl0ZW0tbGFiZWwtY29sb3IsXHJcbiAgJGxlZnQtY2xhc3M6ICdsZWZ0JyxcclxuICAkbGVmdC1wYWRkaW5nOiBnZXQtc2lkZSgkYmxvY2tsaXN0LWl0ZW0tcGFkZGluZywgdG9wKVxyXG4pIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgJi4jeyRsZWZ0LWNsYXNzfSB7XHJcbiAgICBtYXJnaW4tbGVmdDogJGxlZnQtcGFkZGluZztcclxuICAgIGZsb2F0OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLypcclxuICBBZGRzIHN1cHBvcnQgZm9yIGNoZXZyb25zLCB3aGljaCBhcHBlYXIgb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiB0aGUgaXRlbS5cclxuXHJcbiAgJGNvbG9yIC0gY29sb3Igb2YgdGhlIGNoZXZyb24uXHJcbiAgJHBhZGRpbmcgLSBpbmNsdWRlIHRoZSBnbG9iYWwgcGFkZGluZyBvZiBibG9jayBsaXN0IGl0ZW1zIGhlcmUuXHJcbiovXHJcbkBtaXhpbiBibG9jay1saXN0LWNoZXZyb24oXHJcbiAgJGNvbG9yOiAkYmxvY2tsaXN0LWhlYWRlci1jb2xvcixcclxuICAkcGFkZGluZzogJGJsb2NrbGlzdC1pdGVtLXBhZGRpbmcsXHJcbiAgJGxhYmVsLWNsYXNzOiAnYmxvY2stbGlzdC1sYWJlbCdcclxuKSB7XHJcbiAgLy8gQ2hldnJvbnMgYXJlIGEgcHNldWRvLWVsZW1lbnRcclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnXFwyMDNBJztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IGdldC1zaWRlKCRwYWRkaW5nLCByaWdodCk7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuICAgIGZvbnQtc2l6ZTogMmVtO1xyXG4gIH1cclxuXHJcbiAgLy8gTGFiZWxzIG5leHQgdG8gbGlua3MgbW92ZSBvdmVyIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIGNoZXZyb25cclxuICAvLyBUT0RPOiB0aGlzIHNlbGVjdG9yIG5lZWRzIHRvIGJlIGN1c3RvbWlhYmxlLCBidXQgYWRkaW5nIGEgc2V0dGluZyBqdXN0IGZvciBpdCBtaWdodCBiZSB3ZWlyZFxyXG4gIC4jeyRsYWJlbC1jbGFzc30ge1xyXG4gICAgcGFkZGluZy1yaWdodDogZ2V0LXNpZGUoJHBhZGRpbmcsIHJpZ2h0KSAqIDEuNTtcclxuICB9XHJcbn1cclxuXHJcbi8qXHJcbiAgQWRkcyBpY29uIHN0eWxlcy4gQ2FsbCB0aGlzIG1peGluIG9uIGEgYmxvY2sgbGlzdCBjb250YWluZXIuXHJcblxyXG4gICRzaXplIC0gc2l6ZSBvZiB0aGUgaWNvbiBhcyBhIHBlcmNlbnRhZ2UgKGRlY2ltYWwpIG9mIHRoZSBsaXN0IGl0ZW0ncyBoZWlnaHQuXHJcbiAgJGl0ZW0tc2VsZWN0b3IgLSBvdmVycmlkZXMgdGhlICdsaScgc2VsZWN0b3IgdXNlZCBmb3IgbGlzdCBpdGVtcy5cclxuKi9cclxuQG1peGluIGJsb2NrLWxpc3QtaWNvbnMoXHJcbiAgJHNpemU6ICRibG9ja2xpc3QtaXRlbS1pY29uLXNpemUsXHJcbiAgJGl0ZW0tc2VsZWN0b3I6ICdsaSdcclxuKSB7XHJcbiAgLy8gUEggLSBuZWVkIGEgYmV0dGVyIHNvbHV0aW9uXHJcbiAgJGl0ZW0taGVpZ2h0OlxyXG4gICAgJGJsb2NrbGlzdC1mb250c2l6ZVxyXG4gICAgKyBnZXQtc2lkZSgkYmxvY2tsaXN0LWl0ZW0tcGFkZGluZywgdG9wKVxyXG4gICAgKyBnZXQtc2lkZSgkYmxvY2tsaXN0LWl0ZW0tcGFkZGluZywgdG9wKTtcclxuXHJcbiAgJGljb24taGVpZ2h0OiAkaXRlbS1oZWlnaHQgKiAkYmxvY2tsaXN0LWl0ZW0taWNvbi1zaXplO1xyXG4gICRpY29uLW9mZnNldDogKCRpdGVtLWhlaWdodCAtICRpY29uLWhlaWdodCkgLyAyO1xyXG5cclxuICAjeyRpdGVtLXNlbGVjdG9yfSB7XHJcbiAgICA+IGEsID4gc3BhbiwgPiBsYWJlbCB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogKGdldC1zaWRlKCRibG9ja2xpc3QtaXRlbS1wYWRkaW5nLCBsZWZ0KSAqIDIpICsgJGJsb2NrbGlzdC1pdGVtLWljb24tc2l6ZTtcclxuICAgIH1cclxuICAgIGltZywgLmljb25pYyB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAkaWNvbi1vZmZzZXQ7XHJcbiAgICAgIGxlZnQ6ICRpY29uLW9mZnNldDtcclxuICAgICAgd2lkdGg6ICRpY29uLWhlaWdodDtcclxuICAgICAgaGVpZ2h0OiAkaWNvbi1oZWlnaHQ7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKlxyXG4gIEFkZHMgc3VwcG9ydCBmb3IgdGV4dCBmaWVsZHMsIHNlbGVjdCBtZW51cywgYW5kIGNoZWNrYm94L3JhZGlvIGdyb3VwcyBpbiBibG9jayBsaXN0cy5cclxuXHJcbiAgJGNvbG9yIC0gY29sb3Igb2Ygc2VsZWN0IG1lbnUgYXJyb3cuXHJcbiAgJGJhY2tncm91bmQtaG92ZXIgLSBjb2xvciBvZiBzZWxlY3QgbWVudSB3aGVuIGhvdmVyZWQgb3Zlci5cclxuICAkcGFkZGluZyAtIGluY2x1ZGUgdGhlIGdsb2JhbCBwYWRkaW5nIG9mIGJsb2NrIGxpc3QgaXRlbXMgaGVyZS5cclxuICAkZHJvcGRvd24tY2xhc3MgLSBjbGFzcyB0byB1c2UgZm9yIGxpc3QgaXRlbXMgdGhhdCBjb250YWluIGEgZHJvcGRvd24uXHJcbiAgJHN3aXRjaC1jbGFzcyAtIGNsYXNzIHRvIHVzZSBmb3Igc3dpdGNoZXMgaW5zaWRlIGxpc3QgaXRlbXMuXHJcbiovXHJcbkBtaXhpbiBibG9jay1saXN0LWlucHV0cyhcclxuICAkY29sb3I6ICRibG9ja2xpc3QtaXRlbS1jb2xvcixcclxuICAkYmFja2dyb3VuZDogJGJsb2NrbGlzdC1iYWNrZ3JvdW5kLFxyXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYmxvY2tsaXN0LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcixcclxuICAkcGFkZGluZzogJGJsb2NrbGlzdC1pdGVtLXBhZGRpbmcsXHJcbiAgJGljb25zOiAkYmxvY2tsaXN0LWNoZWNrLWljb25zLFxyXG4gICRkcm9wZG93bi1jbGFzczogJ3dpdGgtZHJvcGRvd24nLFxyXG4gICRzd2l0Y2gtY2xhc3M6ICdzd2l0Y2gnXHJcbikge1xyXG4gIC8vIFRleHQgZmllbGRzXHJcbiAgI3skdGV4dC1pbnB1dC1zZWxlY3RvcnN9IHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgICBjb2xvcjogaW5oZXJpdDtcclxuXHJcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgYm9yZGVyOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTXVsdGlwbGUgc2VsZWN0XHJcbiAgbGkgPiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIGxpID4gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC05OTk5cHg7XHJcblxyXG4gICAgJiArIGxhYmVsIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGZvbnQtc2l6ZTogJGJsb2NrbGlzdC1mb250c2l6ZTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAkaWNvbnMgPT0gdHJ1ZSB7XHJcbiAgICAgICY6Y2hlY2tlZCArIGxhYmVsIHtcclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgaW1hZ2UtY2hlY2ttYXJrKCRjb2xvcik7XHJcbiAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG4gICAgICAgICAgd2lkdGg6IDEuNWVtO1xyXG4gICAgICAgICAgaGVpZ2h0OiAxLjVlbTtcclxuICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogLTAuMjVlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIERyb3Bkb3duc1xyXG4gIC4jeyRkcm9wZG93bi1jbGFzc30ge1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcblxyXG4gICAgc2VsZWN0IHtcclxuICAgICAgLy8gUmVzZXQgcGVza3kgPHNlbGVjdD4gc3R5bGVzXHJcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICBvdXRsaW5lOiAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAwO1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgZm9udC1zaXplOiAxZW07IC8vIFNhbWUgc2l6ZSBhcyBpdHMgcGFyZW50XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBTd2l0Y2hlc1xyXG4gIC4jeyRzd2l0Y2gtY2xhc3N9IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgcmlnaHQ6IGdldC1zaWRlKCRwYWRkaW5nLCByaWdodCk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKGJsb2NrLWxpc3QpIHtcclxuICAuYmxvY2stbGlzdCB7XHJcbiAgICBAaW5jbHVkZSBibG9jay1saXN0LWNvbnRhaW5lcjtcclxuICAgIEBpbmNsdWRlIGJsb2NrLWxpc3QtaW5wdXRzO1xyXG5cclxuICAgICYud2l0aC1pY29ucyB7IEBpbmNsdWRlIGJsb2NrLWxpc3QtaWNvbnM7IH1cclxuICAgIGhlYWRlciAgICAgICB7IEBpbmNsdWRlIGJsb2NrLWxpc3QtaGVhZGVyOyB9XHJcblxyXG4gICAgbGkge1xyXG4gICAgICBAaW5jbHVkZSBibG9jay1saXN0LWl0ZW07XHJcblxyXG4gICAgICAmLndpdGgtY2hldnJvbiAgICB7IEBpbmNsdWRlIGJsb2NrLWxpc3QtY2hldnJvbjsgfVxyXG4gICAgICAuYmxvY2stbGlzdC1sYWJlbCB7IEBpbmNsdWRlIGJsb2NrLWxpc3QtbGFiZWw7IH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTEgYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59IiwiLypcbiAgR0xPQkFMXG4gIC0tLS0tLVxuXG4gIEdsb2JhbCBzdHlsZXMgYW5kIHNldHRpbmdzIGZvciBGb3VuZGF0aW9uIGZvciBBcHBzIGFyZSBzdG9yZWQgaGVyZS4gVGhpcyBmaWxlIG11c3QgYWx3YXlzXG4gIGJlIGltcG9ydGVkLCBubyBtYXR0ZXIgd2hhdC5cblxuICBJbmNsdWRlczpcbiAgIC1cbiovXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gR2xvYmFsIFN0eWxlc1xuLy8gVGhpcyBzZXRzIDFyZW0gdG8gYmUgMTZweFxuJHJlbS1iYXNlOiAxNnB4O1xuXG4vLyBUaGUgZGVmYXVsdCBmb250LXNpemUgaXMgc2V0IHRvIDEwMCUgb2YgdGhlIGJyb3dzZXIgc3R5bGUgc2hlZXQgKHVzdWFsbHkgMTZweClcbi8vIGZvciBjb21wYXRpYmlsaXR5IHdpdGggYnJvd3Nlci1iYXNlZCB0ZXh0IHpvb20gb3IgdXNlci1zZXQgZGVmYXVsdHMuXG5cbi8vIFNpbmNlIHRoZSB0eXBpY2FsIGRlZmF1bHQgYnJvd3NlciBmb250LXNpemUgaXMgMTZweCwgdGhhdCBtYWtlcyB0aGUgY2FsY3VsYXRpb24gZm9yIGdyaWQgc2l6ZS5cbi8vIElmIHlvdSB3YW50IHlvdXIgYmFzZSBmb250LXNpemUgdG8gYmUgZGlmZmVyZW50IGFuZCBub3QgaGF2ZSBpdCBhZmZlY3QgdGhlIGdyaWQgYnJlYWtwb2ludHMsXG4vLyBzZXQgJHJlbS1iYXNlIHRvICRiYXNlLWZvbnQtc2l6ZSBhbmQgbWFrZSBzdXJlICRiYXNlLWZvbnQtc2l6ZSBpcyBhIHB4IHZhbHVlLlxuJGJhc2UtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLyAkYmFzZS1saW5lLWhlaWdodCBpcyAyNHB4IHdoaWxlICRiYXNlLWZvbnQtc2l6ZSBpcyAxNnB4XG4kYmFzZS1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLyBUZXh0IHNlbGVjdG9yIGhlbHBlcnNcbiRoZWFkZXJzOiBcImgxLGgyLGgzLGg0LGg1LGg2XCI7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBkZWZpbmUgZGVmYXVsdCBmb250IHdlaWdodHNcbiRmb250LXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGdsb2JhbCBzdHlsZXNcbiRib2R5LWJhY2tncm91bmQ6ICNmZmYgIWRlZmF1bHQ7XG4kYm9keS1mb250LWNvbG9yOiAjMjIyICFkZWZhdWx0O1xuJGJvZHktZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJvZHktZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG5cbi8vIEFwcGxpY2F0aW9uIENvbG9yc1xuJHByaW1hcnktY29sb3I6ICMwMDU1OGIgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWNvbG9yOiAjZjFmMWYxICFkZWZhdWx0O1xuJGFsZXJ0LWNvbG9yOiAjRjA0MTI0ICFkZWZhdWx0O1xuJGluZm8tY29sb3I6ICNBMEQzRTggIWRlZmF1bHQ7XG4kc3VjY2Vzcy1jb2xvcjogIzQzQUM2QSAhZGVmYXVsdDtcbiR3YXJuaW5nLWNvbG9yOiAjRjA4QTI0ICFkZWZhdWx0O1xuJGRhcmstY29sb3I6ICMyMzIzMjMgIWRlZmF1bHQ7XG4kZ3JheTogI2RmZGZkZiAhZGVmYXVsdDtcbiRncmF5LWRhcms6IGRhcmtlbigkZ3JheSwgOCkgIWRlZmF1bHQ7XG4kZ3JheS1saWdodDogbGlnaHRlbigkZ3JheSwgOCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBtYWtlIHN1cmUgYm9yZGVyIHJhZGl1cyBtYXRjaGVzIHVubGVzcyB3ZSB3YW50IGl0IGRpZmZlcmVudC5cbiRnbG9iYWwtcmFkaXVzOiA0cHggIWRlZmF1bHQ7XG4kZ2xvYmFsLXJvdW5kZWQ6IDEwMDBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgZm9yIGRlZmF1bHQgc3BhY2luZ1xuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuJGdsb2JhbC1zcGFjaW5nOiByZW0tY2FsYygxNSkgIWRlZmF1bHQ7XG4vLy9cblxuLy8gRm9yIGludGVybmFsIHVzZTogYSBjb2xvciBtYXBcbiRmb3VuZGF0aW9uLWNvbG9yczogKFxuICBwcmltYXJ5OiAkcHJpbWFyeS1jb2xvcixcbiAgc3VjY2VzczogJHN1Y2Nlc3MtY29sb3IsXG4gIHdhcm5pbmc6ICR3YXJuaW5nLWNvbG9yLFxuICBhbGVydDogJGFsZXJ0LWNvbG9yLFxuICBkYXJrOiAkZGFyay1jb2xvcixcbik7XG5cbkBpbmNsdWRlIGV4cG9ydHMoZ2xvYmFsKSB7XG4gIC8vIE1ha2UgZXh0cmEgc3VyZSB3ZSdyZSB1c2luZyB0aGUgd2hvbGUgd2luZG93XG4gIGh0bWwsIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgfVxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG4gICosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGJvZHktZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJGJvZHktZm9udC1zdHlsZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaWYgJGJvZHktYW50aWFsaWFzZWQge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR3JpZCBEZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcblxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC8vIEdpdmUgYWxsIGFuY2hvcnMgYW5kIGludGVyYWN0aXZlIGRpcmVjdGl2ZXMgdGhlIGhvdmVyIGN1c29yXG4gIGEsIFt1aS1zcmVmXSwgW3pmLW9wZW5dLCBbemYtY2xvc2VdLCBbemYtdG9nZ2xlXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgI21hcF9jYW52YXMsXG4gIC5tYXBfY2FudmFzIHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHsgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgfVxuXG4gIC5wYWRkaW5nIHtcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4gIH1cbn1cbiIsIi8qXHJcbiAgQUNUSU9OIFNIRUVUXHJcbiAgLS0tLS0tLS0tLS0tXHJcblxyXG4gIEEgZHJvcGRvd24gbWVudSB0aGF0IHN0aWNrcyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4gb24gc21hbGwgZGV2aWNlcywgYW5kIGJlY29tZXMgYSBkcm9wZG93biBtZW51IG9uIGxhcmdlciBkZXZpY2VzLlxyXG4qL1xyXG5cclxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXHJcbi8vIEFjdGlvbiBTaGVldFxyXG4kYWN0aW9uc2hlZXQtYmFja2dyb3VuZDogd2hpdGUgIWRlZmF1bHQ7XHJcbiRhY3Rpb25zaGVldC1ib3JkZXItY29sb3I6ICNjY2MgIWRlZmF1bHQ7XHJcbiRhY3Rpb25zaGVldC1hbmltYXRlOiB0cmFuc2Zvcm0gb3BhY2l0eSAhZGVmYXVsdDtcclxuJGFjdGlvbnNoZWV0LWFuaW1hdGlvbi1zcGVlZDogMC4yNXMgIWRlZmF1bHQ7XHJcbiRhY3Rpb25zaGVldC13aWR0aDogMzAwcHggIWRlZmF1bHQ7XHJcbiRhY3Rpb25zaGVldC1yYWRpdXM6IDRweCAhZGVmYXVsdDtcclxuJGFjdGlvbnNoZWV0LXNoYWRvdzogMCAtM3B4IDEwcHggcmdiYShibGFjaywgMC4yNSkgIWRlZmF1bHQ7XHJcbiRhY3Rpb25zaGVldC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcbiRhY3Rpb25zaGVldC10YWlsLXNpemU6IDEwcHggIWRlZmF1bHQ7XHJcblxyXG4kYWN0aW9uc2hlZXQtcG9wdXAtc2hhZG93OiAwIDAgMTBweCByZ2JhKGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcclxuXHJcbiRhY3Rpb25zaGVldC1saW5rLWNvbG9yOiAjMDAwICFkZWZhdWx0O1xyXG4kYWN0aW9uc2hlZXQtbGluay1iYWNrZ3JvdW5kLWhvdmVyOiBzbWFydHNjYWxlKCRhY3Rpb25zaGVldC1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4vKlxyXG4gIFN0eWxlcyBmb3IgdGhlIGxpc3QgaW5zaWRlIGFuIGFjdGlvbiBzaGVldC5cclxuICBEb24ndCBpbmNsdWRlIHRoaXMgbWl4aW4gaWYgeW91IHdhbnQgdG8gYnVpbGQgY3VzdG9tIGNvbnRyb2xzIGluc2lkZSB0aGUgc2hlZXQuXHJcbiovXHJcbkBtaXhpbiBhY3Rpb24tc2hlZXQtbWVudShcclxuICAkcGFkZGluZzogJGFjdGlvbnNoZWV0LXBhZGRpbmcsXHJcbiAgJGNvbG9yOiAkYWN0aW9uc2hlZXQtbGluay1jb2xvcixcclxuICAkYm9yZGVyLWNvbG9yOiAkYWN0aW9uc2hlZXQtYm9yZGVyLWNvbG9yLFxyXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYWN0aW9uc2hlZXQtbGluay1iYWNrZ3JvdW5kLWhvdmVyXHJcbikge1xyXG4gIC8vIE1lbnUgY29udGFpbmVyXHJcbiAgdWwge1xyXG4gICAgbWFyZ2luOiAtKCRwYWRkaW5nKTtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgICAvLyBJZiB0aGUgbWVudSBoYXMgbm8gY29udGVudCBhYm92ZSBpdFxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0kcGFkZGluZztcclxuXHJcbiAgICAgIGxpOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItdG9wOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWVudSBsaW5rc1xyXG4gICAgYSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAkcGFkZGluZyAqIDAuODtcclxuICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hbGVydCA+IGEge1xyXG4gICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xyXG4gICAgfVxyXG4gICAgLmRpc2FibGVkID4gYSB7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICBjb2xvcjogIzk5OTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qXHJcbiAgU3R5bGVzIGZvciB0aGUgYWN0aW9uIHNoZWV0IGNvbnRhaW5lci4gQWN0aW9uIHNoZWV0cyBwaW4gdG8gdGhlIHRvcCBvciBib3R0b20gb2YgdGhlIHNjcmVlbi5cclxuKi9cclxuQG1peGluIGFjdGlvbi1zaGVldChcclxuICAkcG9zaXRpb246IGJvdHRvbSxcclxuICAkc2hhZG93OiAkYWN0aW9uc2hlZXQtc2hhZG93LFxyXG4gICRhbmltYXRlOiAkYWN0aW9uc2hlZXQtYW5pbWF0ZSxcclxuICAkYW5pbWF0aW9uLXNwZWVkOiAkYWN0aW9uc2hlZXQtYW5pbWF0aW9uLXNwZWVkLFxyXG4gICRwYWRkaW5nOiAkYWN0aW9uc2hlZXQtcGFkZGluZyxcclxuICAkYmFja2dyb3VuZDogJGFjdGlvbnNoZWV0LWJhY2tncm91bmRcclxuKSB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogMTAwMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogJGFuaW1hdGU7XHJcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGFuaW1hdGlvbi1zcGVlZDtcclxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XHJcblxyXG4gIEBpZiBoYXN2YWx1ZSgkc2hhZG93KSB7XHJcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xyXG4gIH1cclxuXHJcbiAgLy8gUG9zaXRpb25zXHJcbiAgQGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xyXG5cclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gVGhlc2UgdHdvIGRvbid0IHF1aXRlIHdvcmsgYXMgcGxhbm5lZCB5ZXRcclxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcclxuICAgIHRvcDogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XHJcblxyXG4gICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHBvcHVwLW1lbnUoXHJcbiAgJHBvc2l0aW9uOiBib3R0b20sXHJcbiAgJGJhY2tncm91bmQ6ICRhY3Rpb25zaGVldC1iYWNrZ3JvdW5kLFxyXG4gICR3aWR0aDogJGFjdGlvbnNoZWV0LXdpZHRoLFxyXG4gICRyYWRpdXM6ICRhY3Rpb25zaGVldC1yYWRpdXMsXHJcbiAgJHNoYWRvdzogJGFjdGlvbnNoZWV0LXBvcHVwLXNoYWRvdyxcclxuICAkdGFpbC1zaXplOiAkYWN0aW9uc2hlZXQtdGFpbC1zaXplXHJcbikge1xyXG4gIC8qXHJcbiAgICBDb3JlIHN0eWxlc1xyXG4gICovXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB3aWR0aDogJHdpZHRoO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgb3BhY2l0eTogMDtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgLypcclxuICAgIE1lbnUgc2hhZG93XHJcbiAgKi9cclxuICBAaWYgaGFzdmFsdWUoJHNoYWRvdykge1xyXG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBBY3RpdmUgc3RhdGVcclxuICAqL1xyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBNZW51IHRhaWxcclxuICAqL1xyXG4gICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAwcHg7XHJcbiAgICBoZWlnaHQ6IDBweDtcclxuICAgIGJvcmRlci1sZWZ0OiAkdGFpbC1zaXplIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAkdGFpbC1zaXplIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0oJHRhaWwtc2l6ZSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgUG9zaXRpb25pbmdcclxuICAqL1xyXG4gIEBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcclxuICAgIHRvcDogYXV0bztcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDExMCUpO1xyXG4gICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgxMDAlKTtcclxuICAgIH1cclxuXHJcbiAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcclxuICAgICAgdG9wOiAtKCR0YWlsLXNpemUpO1xyXG4gICAgICBib3R0b206IGF1dG87XHJcbiAgICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR0YWlsLXNpemUgc29saWQgJGJhY2tncm91bmQ7XHJcbiAgICB9XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICB0b3A6IC0oJHRhaWwtc2l6ZSArIDIpO1xyXG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKGJsYWNrLCAwLjE1KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiBhdXRvO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEyMCUpO1xyXG4gICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTEwJSk7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XHJcbiAgICAgIHRvcDogYXV0bztcclxuICAgICAgYm90dG9tOiAtKCR0YWlsLXNpemUpO1xyXG4gICAgICBib3JkZXItdG9wOiAkdGFpbC1zaXplIHNvbGlkICRiYWNrZ3JvdW5kO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgYm90dG9tOiAtKCR0YWlsLXNpemUgKyAyKTtcclxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYShibGFjaywgMC4xNSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKGFjdGlvbi1zaGVldCkge1xyXG4gIC5hY3Rpb24tc2hlZXQtY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcbiAgLmFjdGlvbi1zaGVldCB7XHJcbiAgICBAaW5jbHVkZSBhY3Rpb24tc2hlZXQ7XHJcbiAgICBAaW5jbHVkZSBhY3Rpb24tc2hlZXQtbWVudTtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAaW5jbHVkZSBwb3B1cC1tZW51O1xyXG5cclxuICAgICAgJi50b3Age1xyXG4gICAgICAgIEBpbmNsdWRlIHBvcHVwLW1lbnUodG9wKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYucHJpbWFyeSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgICBjb2xvcjogaXNpdGxpZ2h0KCRwcmltYXJ5LWNvbG9yKTtcclxuICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAmOjpiZWZvcmUgeyBkaXNwbGF5OiBub25lOyB9XHJcbiAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIgeyBib3JkZXItdG9wLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjsgfVxyXG4gICAgICAmLnRvcDo6YmVmb3JlLCAmLnRvcDo6YWZ0ZXIgeyBib3JkZXItYm90dG9tLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjsgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgYWN0aW9uLXNoZWV0LW1lbnUoXHJcbiAgICAgICAgJGNvbG9yOiBpc2l0bGlnaHQoJHByaW1hcnktY29sb3IpLFxyXG4gICAgICAgICRib3JkZXItY29sb3I6IHNtYXJ0c2NhbGUoJHByaW1hcnktY29sb3IsIDEwJSksXHJcbiAgICAgICAgJGJhY2tncm91bmQtaG92ZXI6IHNtYXJ0c2NhbGUoJHByaW1hcnktY29sb3IpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAmLmRhcmsge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkZGFyay1jb2xvcjtcclxuICAgICAgY29sb3I6IGlzaXRsaWdodCgkZGFyay1jb2xvcik7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgICAgJjo6YmVmb3JlIHsgZGlzcGxheTogbm9uZTsgfVxyXG4gICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHsgYm9yZGVyLXRvcC1jb2xvcjogJGRhcmstY29sb3I7IH1cclxuICAgICAgJi50b3A6OmJlZm9yZSwgJi50b3A6OmFmdGVyIHsgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGRhcmstY29sb3I7IH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIGFjdGlvbi1zaGVldC1tZW51KFxyXG4gICAgICAgICRjb2xvcjogaXNpdGxpZ2h0KCRkYXJrLWNvbG9yKSxcclxuICAgICAgICAkYm9yZGVyLWNvbG9yOiBzbWFydHNjYWxlKCRkYXJrLWNvbG9yLCAxMCUpLFxyXG4gICAgICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzbWFydHNjYWxlKCRkYXJrLWNvbG9yKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKlxuICBGT1JNU1xuICAtLS0tLVxuXG4gIE91ciBmb3JtIHN0eWxlcyBpbmNsdWRlIGJhc2ljIHJlc2V0cyBmb3IgdGV4dCBmaWVsZHMsIHNlbGVjdCBtZW51cywgYW5kIHNvIG9uLCBhbG9uZyB3aXRoIHNvbWUgb2Ygb3VyIG93biBjdXN0b20gY29tcG9uZW50cy5cblxuICBJbmNsdWRlczpcbiAgIC0gVGV4dCBmaWVsZHNcbiAgIC0gVGV4dCBhcmVhc1xuICAgLSBTZWxlY3QgbWVudXNcbiAgIC0gQ2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9uc1xuICAgLSBSYW5nZSBzbGlkZXJcbiAgIC0gUHJvZ3Jlc3MgYmFycyBhbmQgbWV0ZXJzXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIEZvcm1zXG4vLyBCYXNpYyBmb3JtIHZhcmlhYmxlc1xuJGZvcm0tZm9udHNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kZm9ybS1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vIFRleHQgZmllbGRzXG4kaW5wdXQtY29sb3I6ICMwMDAgIWRlZmF1bHQ7XG4kaW5wdXQtY29sb3ItaG92ZXI6ICRpbnB1dC1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1jb2xvci1mb2N1czogJGlucHV0LWNvbG9yICFkZWZhdWx0O1xuJGlucHV0LWJhY2tncm91bmQ6ICNmZmYgIWRlZmF1bHQ7XG4kaW5wdXQtYmFja2dyb3VuZC1ob3ZlcjogJGlucHV0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJGlucHV0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogc21hcnRzY2FsZSgkaW5wdXQtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgI2NjYyAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItaG92ZXI6IDFweCBzb2xpZCAjYmJiICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICM5OTkgIWRlZmF1bHQ7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8gU2VsZWN0IG1lbnVzXG4kc2VsZWN0LWNvbG9yOiAjMDAwICFkZWZhdWx0O1xuJHNlbGVjdC1iYWNrZ3JvdW5kOiAjZmFmYWZhICFkZWZhdWx0O1xuJHNlbGVjdC1iYWNrZ3JvdW5kLWhvdmVyOiBzbWFydHNjYWxlKCRzZWxlY3QtYmFja2dyb3VuZCwgNCUpICFkZWZhdWx0O1xuJHNlbGVjdC1hcnJvdzogdHJ1ZSAhZGVmYXVsdDtcbiRzZWxlY3QtYXJyb3ctY29sb3I6ICRzZWxlY3QtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIExhYmVsc1xuJGZvcm0tbGFiZWwtZm9udHNpemU6IDAuOXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLW1hcmdpbjogMC41cmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtY29sb3I6ICMzMzMgIWRlZmF1bHQ7XG5cbi8vIElubGluZSBsYWJlbHNcbiRpbmxpbmVsYWJlbC1jb2xvcjogIzMzMyAhZGVmYXVsdDtcbiRpbmxpbmVsYWJlbC1iYWNrZ3JvdW5kOiAjZWVlICFkZWZhdWx0O1xuJGlubGluZWxhYmVsLWJvcmRlcjogJGlucHV0LWJvcmRlciAhZGVmYXVsdDtcblxuLy8gUmFuZ2Ugc2xpZGVyXG4kc2xpZGVyLWJhY2tncm91bmQ6ICNkZGQgIWRlZmF1bHQ7XG4kc2xpZGVyLWhlaWdodDogMXJlbSAhZGVmYXVsdDtcbiRzbGlkZXItcmFkaXVzOiAwcHggIWRlZmF1bHQ7XG4kc2xpZGVyLXRodW1iLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xuJHNsaWRlci10aHVtYi1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kc2xpZGVyLXRodW1iLXJhZGl1czogMHB4ICFkZWZhdWx0O1xuXG4vLyBQcm9ncmVzcyBhbmQgbWV0ZXJcbiRtZXRlci1oZWlnaHQ6IDEuNXJlbSAhZGVmYXVsdDtcbiRtZXRlci1iYWNrZ3JvdW5kOiAjY2NjICFkZWZhdWx0O1xuJG1ldGVyLWZpbGw6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJG1ldGVyLWZpbGwtaGlnaDogJHN1Y2Nlc3MtY29sb3IgIWRlZmF1bHQ7XG4kbWV0ZXItZmlsbC1tZWRpdW06ICNlN2NmMDAgIWRlZmF1bHQ7XG4kbWV0ZXItZmlsbC1sb3c6ICRhbGVydC1jb2xvciAhZGVmYXVsdDtcbiRtZXRlci1yYWRpdXM6IDAgIWRlZmF1bHQ7XG4vLy9cblxuLy8gRGlzYWJsZSBPUy1sZXZlbCBzdHlsZXNcbkBtaXhpbiBuby1hcHBlYXJhbmNlIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8vIFRleHQgZmllbGRzXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4jeyR0ZXh0LWlucHV0LXNlbGVjdG9yc30ge1xuICAkdG9wLXBhZGRpbmc6IGdldC1zaWRlKCRmb3JtLXBhZGRpbmcsIHRvcCk7XG4gICRib3R0b20tcGFkZGluZzogZ2V0LXNpZGUoJGZvcm0tcGFkZGluZywgYm90dG9tKTtcbiAgJGhlaWdodDogKCRmb3JtLWZvbnRzaXplICogMS40KSArICR0b3AtcGFkZGluZyArICRib3R0b20tcGFkZGluZztcblxuICBAaW5jbHVkZSBuby1hcHBlYXJhbmNlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogJGZvcm0tcGFkZGluZztcbiAgbWFyZ2luOiAwIDAgJGdsb2JhbC1wYWRkaW5nIDA7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGZvcm0tZm9udHNpemU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1ob3ZlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGlucHV0LWNvbG9yLWhvdmVyO1xuICB9XG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGNvbG9yOiAkaW5wdXQtY29sb3ItZm9jdXM7XG4gIH1cblxuICBsYWJlbCA+ICYge1xuICAgIG1hcmdpbi10b3A6ICRmb3JtLWxhYmVsLW1hcmdpbjtcbiAgfVxufVxuXG4vLyBPdmVycmlkZSB0aGUgY29udGVudC1ib3ggZGVjbGFyYXRpb24gc2V0IGJ5IE5vcm1hbGl6ZVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8vIERpc2FibGVkIHN0YXRlXG5pbnB1dCB7XG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdLFxuICAmW3JlYWRvbmx5XSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcblxuICAgICYsICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vIExhYmVsc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250c2l6ZTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tbGFiZWwtbWFyZ2luO1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG5cbiAgPiBpbnB1dCwgPiB0ZXh0YXJlYSB7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tbGFiZWwtbWFyZ2luO1xuICB9XG59XG5cbi8vIENoZWNrYm94L3JhZGlvIGJ1dHRvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTtcblxuICAvLyBJbnB1dCBpbnNpZGUgb2YgYSBsYWJlbFxuICBsYWJlbCA+ICYge1xuICAgIG1hcmdpbi1yaWdodDogJGZvcm0tcGFkZGluZyAqIDAuNTtcbiAgfVxuXG4gIC8vIElucHV0IG5leHQgdG8gYSBsYWJlbFxuICAmICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogJGZvcm0tcGFkZGluZztcbiAgICBtYXJnaW4tcmlnaHQ6ICRmb3JtLXBhZGRpbmcgKiAyO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG59XG5cbi8vIElubGluZSBsYWJlbHNcbi8vIElubGluZSBsYWJlbHMgYWxsb3cgeW91IHRvIHByZWZpeCBvciBwb3N0Zml4IHNwZWNpYWwgbGFiZWxzIHRvIGlucHV0c1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLmlubGluZS1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtcGFkZGluZztcblxuICAvLyBJbWl0YXRlcyB0aGUgdG9wIG1hcmdpbiBvbiBub3JtYWwgaW5wdXRzXG4gIGxhYmVsID4gJiB7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tbGFiZWwtbWFyZ2luO1xuICB9XG5cbiAgLy8gSW5wdXRzIHN0cmV0Y2ggYWxsIHRoZSB3YXkgb3V0XG4gID4gaW5wdXQsID4gc2VsZWN0IHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIElubGluZSBsYWJlbHMgYW5kIGJ1dHRvbnMgc2hyaW5rXG4gID4gLmZvcm0tbGFiZWwge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJhY2tncm91bmQ6ICRpbmxpbmVsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkaW5saW5lbGFiZWwtY29sb3I7XG4gICAgYm9yZGVyOiAkaW5saW5lbGFiZWwtYm9yZGVyO1xuICAgIHBhZGRpbmc6IDAgJGZvcm0tcGFkZGluZztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHsgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gICAgJjpsYXN0LWNoaWxkICB7IGJvcmRlci1sZWZ0OiAwOyB9XG4gIH1cbiAgLy8gQnV0dG9ucyBhbHNvIHNocmlua1xuICA+IGEsXG4gID4gYnV0dG9uLFxuICA+IGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4gID4gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi8vIFRleHQgYXJlYXNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNTBweDtcbn1cblxuLy8gU2VsZWN0IG1lbnVzXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5zZWxlY3Qge1xuICAkdG9wLXBhZGRpbmc6IGdldC1zaWRlKCRmb3JtLXBhZGRpbmcsIHRvcCk7XG4gICRib3R0b20tcGFkZGluZzogZ2V0LXNpZGUoJGZvcm0tcGFkZGluZywgYm90dG9tKTtcbiAgJGhlaWdodDogKCRmb3JtLWZvbnRzaXplICogMS40KSArICR0b3AtcGFkZGluZyArICRib3R0b20tcGFkZGluZztcbiAgJGNvbG9yOiBpc2l0bGlnaHQoJHNlbGVjdC1iYWNrZ3JvdW5kKTtcblxuICBAaW5jbHVkZSBuby1hcHBlYXJhbmNlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogJGZvcm0tcGFkZGluZztcbiAgbWFyZ2luOiAwIDAgJGdsb2JhbC1wYWRkaW5nIDA7XG4gIGZvbnQtc2l6ZTogJGZvcm0tZm9udHNpemU7XG4gIGNvbG9yOiAkc2VsZWN0LWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG5cbiAgQGlmICRzZWxlY3QtYXJyb3cge1xuICAgIGJhY2tncm91bmQ6ICRzZWxlY3QtYmFja2dyb3VuZCB1cmwoaW1hZ2UtdHJpYW5nbGUoJHNlbGVjdC1hcnJvdy1jb2xvcikpIHJpZ2h0IDEwcHggY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDhweCA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMThweCkgKyAkZm9ybS1wYWRkaW5nO1xuICB9XG4gIEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmRcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGRyb3Bkb3duIGFycm93IGFkZGVkIGluIElFMTAvMTFcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBSYW5nZSBzbGlkZXJcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbmlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gICRtYXJnaW46ICgkc2xpZGVyLXRodW1iLWhlaWdodCAtICRzbGlkZXItaGVpZ2h0KSAvIDI7XG5cbiAgQGluY2x1ZGUgbm8tYXBwZWFyYW5jZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXRvcDogJG1hcmdpbjtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcbiAgYm9yZGVyOiAwO1xuICBsaW5lLWhlaWdodDogMTtcblxuICBAaWYgaGFzdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAvLyBDaHJvbWUvU2FmYXJpXG4gICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgfVxuICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6ICRzbGlkZXItdGh1bWItY29sb3I7XG4gICAgd2lkdGg6ICRzbGlkZXItdGh1bWItaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci10aHVtYi1oZWlnaHQ7XG4gICAgbWFyZ2luLXRvcDogLSRtYXJnaW47XG4gICAgQGlmIGhhc3ZhbHVlKCRzbGlkZXItdGh1bWItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXRodW1iLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgLy8gRmlyZWZveFxuICAmOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICB9XG4gICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLXRodW1iLWNvbG9yO1xuICAgIHdpZHRoOiAkc2xpZGVyLXRodW1iLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRzbGlkZXItdGh1bWItaGVpZ2h0O1xuICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xuICAgIEBpZiBoYXN2YWx1ZSgkc2xpZGVyLXRodW1iLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci10aHVtYi1yYWRpdXM7XG4gICAgfVxuICB9XG4gIC8vIEludGVybmV0IEV4cGxvcmVyXG4gICY6Oi1tcy10cmFjayB7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBib3JkZXItdG9wOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogJG1hcmdpbiBzb2xpZCAkYm9keS1iYWNrZ3JvdW5kO1xuICB9XG4gICY6Oi1tcy10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogJHNsaWRlci10aHVtYi1jb2xvcjtcbiAgICB3aWR0aDogJHNsaWRlci10aHVtYi1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLXRodW1iLWhlaWdodDtcbiAgICBib3JkZXI6IDA7XG4gICAgQGlmIGhhc3ZhbHVlKCRzbGlkZXItdGh1bWItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXRodW1iLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgJjo6LW1zLWZpbGwtbG93ZXIsICY6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIH1cbn1cbm91dHB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAkc2xpZGVyLXRodW1iLWhlaWdodDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuXG4vLyBOdW1iZXIgaW5wdXRzXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcbiAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG5cbiAgfVxuICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gIH1cbn1cblxuLy8gUHJvZ3Jlc3MgYW5kIG1ldGVyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5wcm9ncmVzcywgbWV0ZXIge1xuICBAaW5jbHVkZSBuby1hcHBlYXJhbmNlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJG1ldGVyLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gIH1cblxuICAvLyBGb3IgRmlyZWZveFxuICBiYWNrZ3JvdW5kOiAkbWV0ZXItYmFja2dyb3VuZDtcbiAgYm9yZGVyOiAwO1xufVxuXG5wcm9ncmVzcyB7XG4gICY6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItYmFja2dyb3VuZDtcbiAgICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGw7XG4gICAgQGlmIGhhc3ZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgfVxuICB9XG4gICY6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbDtcbiAgICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluIChoaWdoOiAkbWV0ZXItZmlsbC1oaWdoLCBtZWRpdW06ICRtZXRlci1maWxsLW1lZGl1bSwgbG93OiAkbWV0ZXItZmlsbC1sb3cpIHtcbiAgICAmLiN7JG5hbWV9IHtcbiAgICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICB9XG4gICAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbm1ldGVyIHtcbiAgLy8gQ2hyb21lL1NhZmFyaVxuICAmOjotd2Via2l0LW1ldGVyLWJhciB7XG4gICAgYmFja2dyb3VuZDogJG1ldGVyLWJhY2tncm91bmQ7XG4gICAgQGlmIGhhc3ZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgfVxuICB9XG4gICY6Oi13ZWJraXQtbWV0ZXItaW5uZXItZWxlbWVudCB7XG4gICAgQGlmIGhhc3ZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgfVxuICB9XG4gICY6Oi13ZWJraXQtbWV0ZXItb3B0aW11bS12YWx1ZSB7XG4gICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtaGlnaDtcbiAgICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgJjo6LXdlYmtpdC1tZXRlci1zdWJvcHRpbXVtLXZhbHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1tZWRpdW07XG4gICAgQGlmIGhhc3ZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgfVxuICB9XG4gICY6Oi13ZWJraXQtbWV0ZXItZXZlbi1sZXNzLWdvb2QtdmFsdWUge1xuICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWxvdztcbiAgICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG4gIH1cblxuICAvLyBGaXJlZm94XG4gIGJhY2tncm91bmQ6ICRtZXRlci1iYWNrZ3JvdW5kO1xuICAmOjotbW96LW1ldGVyLWJhciB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgQGlmIGhhc3ZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgfVxuICB9XG4gICY6LW1vei1tZXRlci1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7XG4gICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtaGlnaDtcbiAgfVxuICAmOi1tb3otbWV0ZXItc3ViLW9wdGltdW06Oi1tb3otbWV0ZXItYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1tZWRpdW07XG4gIH1cbiAgJjotbW96LW1ldGVyLXN1Yi1zdWItb3B0aW11bTo6LW1vei1tZXRlci1iYXIge1xuICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWxvdztcbiAgfVxufVxuIiwiLypcclxuICBUWVBPR1JBUEhZXHJcbiAgLS0tLS0tLS0tLVxyXG5cclxuICBJbmNsdWRlcyB0eXBvZ3JhcGhpYyByZXNldHMgZm9yIG1hbnkgY29tbW9uIGVsZW1lbnRzLCBhbmQgYSBmZXcgaGVscGVyIGNsYXNzZXMuXHJcbiAgIC0gSGVhZGVyc1xyXG4gICAtIFN1YmhlYWRlcnNcclxuICAgLSBMZWFkIHBhcmFncmFwaHNcclxuICAgLSBPcmRlcmVkL3Vub3JkZXJlZCBsaXN0c1xyXG4gICAtIENvZGUgc2FtcGxlc1xyXG4gICAtIEFuY2hvcnNcclxuICAgLSBEaXZpZGVyc1xyXG4gICAtIEJsb2NrcXVvdGVzXHJcbiAgIC0gQWNyb255bXNcclxuKi9cclxuXHJcbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xyXG4vLyBUeXBvZ3JhcGh5XHJcbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBmb250IHN0eWxlc1xyXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcclxuJGhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJGhlYWRlci1mb250LXN0eWxlOiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xyXG4kaGVhZGVyLWZvbnQtY29sb3I6ICMyMjIgIWRlZmF1bHQ7XHJcbiRoZWFkZXItbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcclxuJGhlYWRlci10b3AtbWFyZ2luOiAuMnJlbSAhZGVmYXVsdDtcclxuJGhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbSAhZGVmYXVsdDtcclxuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc2l6ZXNcclxuJGgxLWZvbnQtc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xyXG4kaDItZm9udC1zaXplOiByZW0tY2FsYygzNykgIWRlZmF1bHQ7XHJcbiRoMy1mb250LXNpemU6IHJlbS1jYWxjKDI3KSAhZGVmYXVsdDtcclxuJGg0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMjMpICFkZWZhdWx0O1xyXG4kaDUtZm9udC1zaXplOiByZW0tY2FsYygxOCkgIWRlZmF1bHQ7XHJcbiRoNi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgc2l6ZSByZWR1Y3Rpb24gb24gc21hbGwgc2NyZWVuc1xyXG4kaDEtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcclxuJGgyLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XHJcbiRoMy1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XHJcbiRoNC1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XHJcbiRoNS1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcclxuJGg2LWZvbnQtcmVkdWN0aW9uOiAwICFkZWZhdWx0O1xyXG5cclxuLy8gVGhlc2UgY29udHJvbCBob3cgc3ViaGVhZGVycyBhcmUgc3R5bGVkLlxyXG4kc3ViaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XHJcbiRzdWJoZWFkZXItZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xyXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xyXG4kc3ViaGVhZGVyLXRvcC1tYXJnaW46IC4ycmVtICFkZWZhdWx0O1xyXG4kc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8gQSBnZW5lcmFsIDxzbWFsbD4gc3R5bGluZ1xyXG4kc21hbGwtZm9udC1zaXplOiA2MCUgIWRlZmF1bHQ7XHJcbiRzbWFsbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgcGFyYWdyYXBoc1xyXG4kcGFyYWdyYXBoLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xyXG4kcGFyYWdyYXBoLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xyXG4kcGFyYWdyYXBoLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcclxuJHBhcmFncmFwaC1saW5lLWhlaWdodDogMS42ICFkZWZhdWx0O1xyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcclxuJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcclxuJHBhcmFncmFwaC1hc2lkZS1saW5lLWhlaWdodDogMS4zNSAhZGVmYXVsdDtcclxuJHBhcmFncmFwaC1hc2lkZS1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XHJcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSA8Y29kZT4gdGFnc1xyXG4kY29kZS1jb2xvcjogZ3JheXNjYWxlKCRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcclxuJGNvZGUtZm9udC1mYW1pbHk6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xyXG4kY29kZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJGNvZGUtYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogNzAlKSAhZGVmYXVsdDtcclxuJGNvZGUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcclxuJGNvZGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcclxuJGNvZGUtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkY29kZS1iYWNrZ3JvdW5kLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKSAhZGVmYXVsdDtcclxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMikgcmVtLWNhbGMoNSkgcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgYW5jaG9yc1xyXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcclxuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XHJcbiRhbmNob3ItZm9udC1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRhbmNob3ItZm9udC1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgPGhyPiBlbGVtZW50XHJcbiRoci1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcclxuJGhyLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XHJcbiRoci1ib3JkZXItY29sb3I6ICNkZGQgIWRlZmF1bHQ7XHJcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBsaXN0c1xyXG4kbGlzdC1mb250LWZhbWlseTogJHBhcmFncmFwaC1mb250LWZhbWlseSAhZGVmYXVsdDtcclxuJGxpc3QtZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGxpc3QtbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcclxuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XHJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjFyZW0gIWRlZmF1bHQ7XHJcbiRsaXN0LW9yZGVyZWQtc2lkZS1tYXJnaW46IDEuNHJlbSAhZGVmYXVsdDtcclxuJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0OiAwICFkZWZhdWx0O1xyXG4kbGlzdC1uZXN0ZWQtbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XHJcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XHJcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b206IC4zcmVtICFkZWZhdWx0O1xyXG4kZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBibG9ja3F1b3Rlc1xyXG4kYmxvY2txdW90ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XHJcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XHJcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICNkZGQgIWRlZmF1bHQ7XHJcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XHJcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAyMyUpICFkZWZhdWx0O1xyXG4kYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vIEFjcm9ueW0gc3R5bGVzXHJcbiRhY3JvbnltLXVuZGVybGluZTogMXB4IGRvdHRlZCAjZGRkICFkZWZhdWx0O1xyXG4vLy9cclxuXHJcbkBtaXhpbiBsZWFkIHtcclxuICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplICsgcmVtLWNhbGMoMy41KTtcclxuICBsaW5lLWhlaWdodDogMS42O1xyXG59XHJcblxyXG5AbWl4aW4gc3ViaGVhZGVyIHtcclxuICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5lLWhlaWdodDtcclxuICBjb2xvcjogJHN1YmhlYWRlci1mb250LWNvbG9yO1xyXG4gIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xyXG4gIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItdG9wLW1hcmdpbjtcclxuICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW47XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHModHlwb2dyYXBoeSkge1xyXG4gIC8qIFR5cG9ncmFwaHkgcmVzZXRzICovXHJcbiAgZGl2LFxyXG4gIGRsLFxyXG4gIGR0LFxyXG4gIGRkLFxyXG4gIHVsLFxyXG4gIG9sLFxyXG4gIGxpLFxyXG4gIGgxLFxyXG4gIGgyLFxyXG4gIGgzLFxyXG4gIGg0LFxyXG4gIGg1LFxyXG4gIGg2LFxyXG4gIHByZSxcclxuICBmb3JtLFxyXG4gIHAsXHJcbiAgYmxvY2txdW90ZSxcclxuICB0aCxcclxuICB0ZCB7XHJcbiAgICBtYXJnaW46MDtcclxuICAgIHBhZGRpbmc6MDtcclxuICB9XHJcblxyXG4gIC8qIERlZmF1bHQgTGluayBTdHlsZXMgKi9cclxuICBhIHtcclxuICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcblxyXG4gICAgJlt1aS1zcmVmXSB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3ItaG92ZXI7XHJcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XHJcbiAgICAgIFx0dGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGltZyB7IGJvcmRlcjpub25lOyB9XHJcbiAgfVxyXG5cclxuICAvKiBEZWZhdWx0IHBhcmFncmFwaCBzdHlsZXMgKi9cclxuICBwIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC13ZWlnaHQ6ICRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ7XHJcbiAgICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XHJcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcclxuXHJcbiAgICAmLmxlYWQgeyBAaW5jbHVkZSBsZWFkOyB9XHJcblxyXG4gICAgJiBhc2lkZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWFzaWRlLWxpbmUtaGVpZ2h0O1xyXG4gICAgICBmb250LXN0eWxlOiAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiBEZWZhdWx0IGhlYWRlciBzdHlsZXMgKi9cclxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcclxuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XHJcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XHJcbiAgICBjb2xvcjogJGhlYWRlci1mb250LWNvbG9yO1xyXG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XHJcbiAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXRvcC1tYXJnaW47XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLWJvdHRvbS1tYXJnaW47XHJcbiAgICBsaW5lLWhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDtcclxuXHJcbiAgICBzbWFsbCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcclxuICAgICAgY29sb3I6ICRzbWFsbC1mb250LWNvbG9yO1xyXG4gICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplIC0gJGgxLWZvbnQtcmVkdWN0aW9uOyB9XHJcbiAgaDIgeyBmb250LXNpemU6ICRoMi1mb250LXNpemUgLSAkaDItZm9udC1yZWR1Y3Rpb247IH1cclxuICBoMyB7IGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZSAtICRoMy1mb250LXJlZHVjdGlvbjsgfVxyXG4gIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplIC0gJGg0LWZvbnQtcmVkdWN0aW9uOyB9XHJcbiAgaDUgeyBmb250LXNpemU6ICRoNS1mb250LXNpemUgLSAkaDUtZm9udC1yZWR1Y3Rpb247IH1cclxuICBoNiB7IGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZSAtICRoNi1mb250LXJlZHVjdGlvbjsgfVxyXG5cclxuICAuc3ViaGVhZGVyIHsgQGluY2x1ZGUgc3ViaGVhZGVyOyB9XHJcblxyXG4gIGhyIHtcclxuICAgIGJvcmRlcjogJGhyLWJvcmRlci1zdHlsZSAkaHItYm9yZGVyLWNvbG9yO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkaHItYm9yZGVyLXdpZHRoIDAgMDtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gICAgbWFyZ2luOiAkaHItbWFyZ2luIDAgKCRoci1tYXJnaW4gLSByZW0tY2FsYygkaHItYm9yZGVyLXdpZHRoKSk7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAvKiBIZWxwZnVsIFR5cG9ncmFwaHkgRGVmYXVsdHMgKi9cclxuICBlbSxcclxuICBpIHtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gIH1cclxuXHJcbiAgc3Ryb25nLFxyXG4gIGIge1xyXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICBzbWFsbCB7XHJcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XHJcbiAgICBjb2xvcjogJHNtYWxsLWZvbnQtY29sb3I7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIGNvZGUge1xyXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xyXG4gICAgY29sb3I6ICRjb2RlLWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci13aWR0aDogJGNvZGUtYm9yZGVyLXNpemU7XHJcbiAgICBib3JkZXItc3R5bGU6ICRjb2RlLWJvcmRlci1zdHlsZTtcclxuICAgIGJvcmRlci1jb2xvcjogJGNvZGUtYm9yZGVyLWNvbG9yO1xyXG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcclxuICB9XHJcblxyXG4gIC8qIExpc3RzICovXHJcbiAgdWwsXHJcbiAgb2wsXHJcbiAgZGwge1xyXG4gICAgZm9udC1zaXplOiAkbGlzdC1mb250LXNpemU7XHJcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZS1oZWlnaHQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xyXG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XHJcbiAgICBmb250LWZhbWlseTogJGxpc3QtZm9udC1mYW1pbHk7XHJcbiAgfVxyXG5cclxuICAvKiBMaXN0cyAqL1xyXG4gIHVsLCBvbCB7XHJcbiAgICBtYXJnaW4tbGVmdDogJGxpc3Qtc2lkZS1tYXJnaW47XHJcbiAgICBsaSB7XHJcbiAgICAgIHVsLFxyXG4gICAgICBvbCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRsaXN0LW5lc3RlZC1tYXJnaW47XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogTGlzdHMgd2l0aG91dCBidWxsZXRzICovXHJcbiAgdWwubm8tYnVsbGV0IHtcclxuICAgICYsIGxpIHVsLCBsaSBvbCB7XHJcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIH1cclxuICAgIG1hcmdpbi1sZWZ0OiAkbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ7XHJcbiAgfVxyXG5cclxuICAvKiBEZWZpbml0aW9uIExpc3RzICovXHJcbiAgZGwge1xyXG4gICAgZHQge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmaW5pdGlvbi1saXN0LWhlYWRlci1tYXJnaW4tYm90dG9tO1xyXG4gICAgICBmb250LXdlaWdodDogJGRlZmluaXRpb24tbGlzdC1oZWFkZXItd2VpZ2h0O1xyXG4gICAgfVxyXG4gICAgZGQgeyBtYXJnaW4tYm90dG9tOiAkZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b207IH1cclxuICB9XHJcblxyXG4gIC8qIEFiYnJldmlhdGlvbnMgKi9cclxuICBhYmJyLFxyXG4gIGFjcm9ueW0ge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtc2l6ZTogOTAlO1xyXG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiAgICBib3JkZXItYm90dG9tOiAkYWNyb255bS11bmRlcmxpbmU7XHJcbiAgICBjdXJzb3I6IGhlbHA7XHJcbiAgfVxyXG4gIGFiYnIge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgfVxyXG5cclxuICAvKiBCbG9ja3F1b3RlcyAqL1xyXG4gIGJsb2NrcXVvdGUge1xyXG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xyXG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcclxuICAgIGJvcmRlci1sZWZ0OiAkYmxvY2txdW90ZS1ib3JkZXI7XHJcblxyXG4gICAgY2l0ZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBmb250LXNpemU6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplO1xyXG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yO1xyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogXCJcXDIwMTQgXFwwMDIwXCI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEsXHJcbiAgICAgIGE6dmlzaXRlZCB7XHJcbiAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtbGluay1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBibG9ja3F1b3RlLFxyXG4gIGJsb2NrcXVvdGUgcCB7XHJcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcclxuICAgIGNvbG9yOiAkYmxvY2txdW90ZS1mb250LWNvbG9yO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgIGgxLGgyLGgzLGg0LGg1LGg2IHsgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7IH1cclxuICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplOyB9XHJcbiAgICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTsgfVxyXG4gICAgaDMgeyBmb250LXNpemU6ICRoMy1mb250LXNpemU7IH1cclxuICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplOyB9XHJcbiAgICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTsgfVxyXG4gICAgaDYgeyBmb250LXNpemU6ICRoNi1mb250LXNpemU7IH1cclxuICB9XHJcbn1cclxuIiwiLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXHJcbi8vIEJ1dHRvbiBHcm91cFxyXG4kYnRuZ3JvdXAtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRidG5ncm91cC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcclxuJGJ0bmdyb3VwLXJhZGl1czogJGJ1dHRvbi1yYWRpdXMgIWRlZmF1bHQ7XHJcbi8vL1xyXG5cclxuJGNoaWxkLXNlbGVjdG9yczogJz4gYSwgPiBsYWJlbCwgPiBidXR0b24nO1xyXG5cclxuJWJ1dHRvbi1ncm91cCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGJvcmRlci1yYWRpdXM6ICRidG5ncm91cC1yYWRpdXM7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBmb250LXNpemU6ICRidXR0b24tZm9udC1zaXplO1xyXG5cclxuICA+IGxpIHtcclxuICAgIGZsZXg6IDAgMCBhdXRvO1xyXG5cclxuICAgIC8vIExpbmtzIGJlY29tZSBidXR0b25zXHJcbiAgICAjeyRjaGlsZC1zZWxlY3RvcnN9IHtcclxuICAgICAgQGV4dGVuZCAlYnV0dG9uO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgICA+IGlucHV0ICsgbGFiZWwge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuICAgIC8vIEFkZCBib3JkZXJzIGJldHdlZW4gaXRlbXNcclxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICN7JGNoaWxkLXNlbGVjdG9yc30ge1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHNjYWxlLWNvbG9yKCRidG5ncm91cC1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMjUlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmIHVzaW5nKGljb25pYykge1xyXG4gICAgLmljb25pYyB7XHJcbiAgICAgIHdpZHRoOiAxZW07XHJcbiAgICAgIGhlaWdodDogMWVtO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVlbTtcclxuICAgICAgbWFyZ2luLXRvcDogLTJweDsgLy8gVGhlIGljb25zIGFyZSBvZGRseSBtaXNhbGlnbmVkXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4lYnV0dG9uLWdyb3VwLXNlZ21lbnRlZCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJHByaW1hcnktY29sb3I7XHJcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZCBjb2xvcjtcclxuXHJcbiAgPiBsaSB7XHJcbiAgICAvLyBIaWRlIHRoZSByYWRpbyBidXR0b25cclxuICAgID4gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBsZWZ0OiAtOTk5OXB4O1xyXG4gICAgfVxyXG4gICAgLy8gVGhpcyBpcyB0aGUgYnV0dG9uXHJcbiAgICAjeyRjaGlsZC1zZWxlY3RvcnN9IHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tZ3JvdXAtc2l6ZSgkc2l6ZTogbWVkaXVtLCAkZXhwYW5kOiBmYWxzZSkge1xyXG4gICRzaXplOiAkYnV0dG9uLWZvbnQtc2l6ZSAqIG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgJHNpemUpO1xyXG4gIGZvbnQtc2l6ZTogJHNpemU7XHJcblxyXG4gIEBpZiAkZXhwYW5kIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7XHJcbiAgfVxyXG59XHJcbkBtaXhpbiBidXR0b24tZ3JvdXAtZXhwYW5kKCRzdHJldGNoOiB0cnVlKSB7XHJcbiAgZGlzcGxheTogaWYoJHN0cmV0Y2gsIGZsZXgsIGlubGluZS1mbGV4KTtcclxuXHJcbiAgPiBsaSB7XHJcbiAgICBmbGV4OiBpZigkc3RyZXRjaCwgMSwgMCAwIGF1dG8pO1xyXG5cclxuICAgICN7JGNoaWxkLXNlbGVjdG9yc30ge1xyXG4gICAgICBAaWYgJHN0cmV0Y2ggeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbkBtaXhpbiBidXR0b24tZ3JvdXAtc3R5bGUoXHJcbiAgJHNlZ21lbnRlZDogZmFsc2UsXHJcbiAgJGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yLFxyXG4gICRjb2xvcjogYXV0b1xyXG4pIHtcclxuXHJcbiAgQGlmIG5vdCgkc2VnbWVudGVkKSB7XHJcbiAgICA+IGxpIHtcclxuICAgICAgI3skY2hpbGQtc2VsZWN0b3JzfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCBhdXRvLCAkY29sb3IpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xyXG4gICAgICB9XHJcbiAgICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgICAjeyRjaGlsZC1zZWxlY3RvcnN9IHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQGV4dGVuZCAlYnV0dG9uLWdyb3VwLXNlZ21lbnRlZDtcclxuICAgICRob3Zlci1jb2xvcjogcmdiYSgkYmFja2dyb3VuZCwgMC4yNSk7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xyXG5cclxuICAgID4gbGkge1xyXG4gICAgICAvLyBUaGlzIGlzIHRoZSBidXR0b25cclxuICAgICAgI3skY2hpbGQtc2VsZWN0b3JzfSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcclxuICAgICAgICBjb2xvcjogJGJhY2tncm91bmQ7XHJcblxyXG4gICAgICAgIC8vIFRoaXMgaXMgdGhlIGJ1dHRvbiBiZWluZyBob3ZlcmVkIG9uXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkaG92ZXItY29sb3I7XHJcbiAgICAgICAgICBjb2xvcjogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgdXNpbmcoaWNvbmljKSB7XHJcbiAgICAgICAgICAuaWNvbmljIHsgQGluY2x1ZGUgY29sb3ItaWNvbigkYmFja2dyb3VuZCk7IH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFRoaXMgaXMgdGhlIGJ1dHRvbiB3aGVuIGl0J3MgYWN0aXZlXHJcbiAgICAgICYuaXMtYWN0aXZlID4gYSxcclxuICAgICAgPiBpbnB1dDpjaGVja2VkICsgbGFiZWwge1xyXG4gICAgICAgICYsICY6aG92ZXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgICBjb2xvcjogaXNpdGxpZ2h0KCRiYWNrZ3JvdW5kKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiB1c2luZyhpY29uaWMpIHtcclxuICAgICAgICAgIC5pY29uaWMgeyBAaW5jbHVkZSBjb2xvci1pY29uKGlzaXRsaWdodCgkYmFja2dyb3VuZCkpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxyXG4gICRzZWdtZW50ZWQ6IGZhbHNlLFxyXG4gICRleHBhbmQ6IGZhbHNlLFxyXG4gICRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcixcclxuICAkY29sb3I6ICNmZmZcclxuKSB7XHJcbiAgQGV4dGVuZCAlYnV0dG9uLWdyb3VwO1xyXG4gIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQoJGV4cGFuZCk7XHJcbiAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKCRzZWdtZW50ZWQsICRiYWNrZ3JvdW5kLCAkY29sb3IpO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRidG5ncm91cC1yYWRpdXM7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoYnV0dG9uLWdyb3VwKSB7XHJcbiAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XHJcblxyXG4gICAgLy8gQ29sb3JzXHJcbiAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZShmYWxzZSwgJHNlY29uZGFyeS1jb2xvcik7IH1cclxuICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKGZhbHNlLCAkc3VjY2Vzcy1jb2xvcik7IH1cclxuICAgICYud2FybmluZyAgIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKGZhbHNlLCAkd2FybmluZy1jb2xvcik7IH1cclxuICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKGZhbHNlLCAkYWxlcnQtY29sb3IpOyB9XHJcblxyXG4gICAgLy8gSW5kaXZpZHVhbCBjb2xvcnNcclxuICAgID4gbGkge1xyXG4gICAgICAmLnNlY29uZGFyeSB7ICN7JGNoaWxkLXNlbGVjdG9yc30geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJHNlY29uZGFyeS1jb2xvciwgYXV0bywgJGJ0bmdyb3VwOiB0cnVlKTsgfSB9XHJcbiAgICAgICYuc3VjY2VzcyAgIHsgI3skY2hpbGQtc2VsZWN0b3JzfSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkc3VjY2Vzcy1jb2xvciwgYXV0bywgJGJ0bmdyb3VwOiB0cnVlKTsgfSB9XHJcbiAgICAgICYud2FybmluZyAgIHsgI3skY2hpbGQtc2VsZWN0b3JzfSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkd2FybmluZy1jb2xvciwgYXV0bywgJGJ0bmdyb3VwOiB0cnVlKTsgfSB9XHJcbiAgICAgICYuYWxlcnQgICAgIHsgI3skY2hpbGQtc2VsZWN0b3JzfSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYWxlcnQtY29sb3IsIGF1dG8sICRidG5ncm91cDogdHJ1ZSk7IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNlZ21lbnRlZFxyXG4gICAgJi5zZWdtZW50ZWQgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUodHJ1ZSk7XHJcbiAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKHRydWUsICRzZWNvbmRhcnktY29sb3IpOyB9XHJcbiAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKHRydWUsICRzdWNjZXNzLWNvbG9yKTsgfVxyXG4gICAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSh0cnVlLCAkd2FybmluZy1jb2xvcik7IH1cclxuICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUodHJ1ZSwgJGFsZXJ0LWNvbG9yKTsgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNpemluZ1xyXG4gICAgJi50aW55ICAgICAgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc2l6ZSh0aW55KTsgfVxyXG4gICAgJi5zbWFsbCAgICAgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc2l6ZShzbWFsbCk7IH1cclxuICAgICYubGFyZ2UgICAgIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXNpemUobGFyZ2UpOyB9XHJcbiAgICAmLmV4cGFuZCAgICB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7IH1cclxuXHJcbiAgICAvLyBEaXNhYmxlZFxyXG4gICAgbGkuZGlzYWJsZWQge1xyXG4gICAgICAjeyRjaGlsZC1zZWxlY3RvcnN9IHtcclxuICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIGlubGluZS1saXN0KCRhbGlnbm1lbnQpe1xyXG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHR0ZXh0LWFsaWduOiAkYWxpZ25tZW50O1xyXG5cdGxpLCBkdCwgZGQge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IC0ycHg7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IC0ycHg7XHJcblx0fVxyXG59XHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKGxpc3QpIHtcclxuICAuaW5saW5lLWxpc3Qge1xyXG4gICAgQGluY2x1ZGUgaW5saW5lLWxpc3QobGVmdCk7XHJcbiAgICBsaSB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qXG4gIE1FTlUgQkFSXG4gIC0tLS0tLS0tXG5cbiAgQSBnZW5lcmljLCBmbGV4aWJsZSBtZW51IGNvbXBvbmVudC5cblxuICBGZWF0dXJlczpcbiAgIC0gT3JpZW50IGhvcml6b250YWxseSBhbmQgdmVydGljYWxseVxuICAgICAtIENoYW5nZSBvcmllbnRhdGlvbiBhdCBjZXJ0YWluIGJyZWFrcG9pbnRzXG4gICAtIEl0ZW1zIHdpdGggaWNvbnMgYWJvdmUsIGJlbG93LCBvciB0byB0aGUgbGVmdCBvciByaWdodFxuICAgLSBUZXh0IGxhYmVscyBmb3IgdmVydGljYWwgbWVudXMgYW5kIGJhZGdlcyBmb3IgaG9yaXpvbnRhbCBtZW51c1xuKi9cblxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXG4vLyBNZW51IEJhclxuJG1lbnViYXItZm9udHNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kbWVudWJhci1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJG1lbnViYXItYmFja2dyb3VuZC1ob3Zlcjogc21hcnRzY2FsZSgkbWVudWJhci1iYWNrZ3JvdW5kLCA3JSkgIWRlZmF1bHQ7XG4kbWVudWJhci1iYWNrZ3JvdW5kLWFjdGl2ZTogJG1lbnViYXItYmFja2dyb3VuZC1ob3ZlcjtcbiRtZW51YmFyLWNvbG9yOiBpc2l0bGlnaHQoJG1lbnViYXItYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG4kbWVudWJhci1jb2xvci1ob3ZlcjogJG1lbnViYXItY29sb3IgIWRlZmF1bHQ7XG4kbWVudWJhci1jb2xvci1hY3RpdmU6ICRtZW51YmFyLWNvbG9yLWhvdmVyO1xuXG4kbWVudWJhci1pdGVtLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcbiRtZW51YmFyLWljb24tc2l6ZTogMjVweCAhZGVmYXVsdDtcbiRtZW51YmFyLWljb24tc3BhY2luZzogJG1lbnViYXItaXRlbS1wYWRkaW5nICFkZWZhdWx0O1xuLy8vXG5cbi8vIE1lbnUgYmFyIGNvbnRhaW5lclxuJW1lbnUtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gIC8vIE1lbnUgaXRlbVxuICA+IGxpIHtcbiAgICAvLyBUaGlzIGZsZXggc2V0dGluZyBtYWtlcyBlYWNoIGl0ZW0gYW4gZXF1YWwgd2lkdGhcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLy8gTGluayBpbnNpZGUgbWVudSBpdGVtXG4gICAgPiBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogJG1lbnViYXItaXRlbS1wYWRkaW5nO1xuICAgICAgZm9udC1zaXplOiAkbWVudWJhci1mb250c2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS1iYXItbGF5b3V0IChcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc3RyZXRjaDogdHJ1ZVxuKSB7XG4gIC8qXG4gICAgT3JpZW50YXRpb25cbiAgKi9cbiAgQGlmICRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICA+IGxpID4gYSB7XG4gICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICBTdHJldGNoXG4gICovXG4gID4gbGkge1xuICAgIEBpZiAkc3RyZXRjaCA9PSBmYWxzZSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtYmFyLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJG1lbnViYXItYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRtZW51YmFyLWJhY2tncm91bmQtaG92ZXIsXG4gICRiYWNrZ3JvdW5kLWFjdGl2ZTogJG1lbnViYXItYmFja2dyb3VuZC1hY3RpdmUsXG4gICRjb2xvcjogJG1lbnViYXItY29sb3IsXG4gICRjb2xvci1ob3ZlcjogJG1lbnViYXItY29sb3ItaG92ZXIsXG4gICRjb2xvci1hY3RpdmU6ICRtZW51YmFyLWNvbG9yLWFjdGl2ZSxcbiAgJGF1dG9jb2xvcjogZmFsc2Vcbikge1xuICAvLyBBdXRvY29sb3JpbmdcbiAgQGlmICgkYXV0b2NvbG9yKSB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNtYXJ0c2NhbGUoJGJhY2tncm91bmQsIDclKTtcbiAgICAkYmFja2dyb3VuZC1hY3RpdmU6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuXG4gICAgJGNvbG9yOiBpc2l0bGlnaHQoJGJhY2tncm91bmQpO1xuICAgICRjb2xvci1ob3ZlcjogJGNvbG9yO1xuICAgICRjb2xvci1hY3RpdmU6ICRjb2xvcjtcbiAgfVxuXG4gIC8vIENvbnRhaW5lclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBJdGVtc1xuICA+IGxpID4gYSB7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIH1cbiAgfVxuICAuaXMtYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlXG4gIH1cblxuICAvLyBJY29uaWNcbiAgQGlmIHVzaW5nKGljb25pYykge1xuICAgIC5pY29uaWMgeyBAaW5jbHVkZSBjb2xvci1pY29uKCRjb2xvcik7IH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS1iYXItaWNvbnMoXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJHNpemU6ICRtZW51YmFyLWljb24tc2l6ZVxuKSB7XG4gID4gbGkge1xuICAgIC8vIFNpemluZ1xuICAgID4gaW1nLCA+IC5pY29uaWMge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgQGlmICRtZW51YmFyLWljb24tc2l6ZSAhPSBmYWxzZSB7XG4gICAgICAgIHdpZHRoOiAkbWVudWJhci1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJG1lbnViYXItaWNvbi1zaXplO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBvc2l0aW9uXG4gICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgID4gYSB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgPiBpbWcsID4gLmljb25pYyB7IG1hcmdpbjogMCAkbWVudWJhci1pY29uLXNwYWNpbmcgMCAwOyB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICAgID4gYSB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgICAgPiBpbWcsID4gLmljb25pYyB7IG1hcmdpbjogMCAwICRtZW51YmFyLWljb24tc3BhY2luZyAwOyB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgPiBhIHtcbiAgICAgICAgZmxleC1mbG93OiByb3ctcmV2ZXJzZSBub3dyYXA7XG4gICAgICAgID4gaW1nLCA+IC5pY29uaWMgeyBtYXJnaW46IDAgMCAwICRtZW51YmFyLWljb24tc3BhY2luZzsgfVxuICAgICAgfVxuICAgIH1cbiAgICBAaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICA+IGEge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbi1yZXZlcnNlIG5vd3JhcDtcbiAgICAgICAgPiBpbWcsID4gLmljb25pYyB7IG1hcmdpbjogJG1lbnViYXItaWNvbi1zcGFjaW5nIDAgMCAwOyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LWJhci1sYWJlbHMoXG4gICR4OiByaWdodCxcbiAgJHk6IGNlbnRlcixcbiAgJG9mZnNldDogJG1lbnViYXItaXRlbS1wYWRkaW5nLFxuICAkc2l6ZTogMS4ycmVtLFxuICAkYmFja2dyb3VuZDogcmVkLFxuICAkY29sb3I6IGF1dG8sXG4gICRzZWxlY3RvcjogJy5tZW51LWJhci1sYWJlbCdcbikge1xuICA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICA+IGEge1xuICAgICAgQGlmICR4ID09IGxlZnQgb3IgJHggPT0gcmlnaHQge1xuICAgICAgICBwYWRkaW5nLSN7JHh9OiAkc2l6ZSArICRvZmZzZXQgKiAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkc2l6ZSAqIDAuNzU7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRzaXplO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6IGlmKCRjb2xvciA9PSBhdXRvLCBpc2l0bGlnaHQoJGJhY2tncm91bmQpLCAkY29sb3IpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIEBpZiAkeCA9PSBsZWZ0IG9yICR4ID09IHJpZ2h0IHtcbiAgICAgICN7JHh9OiAkb2Zmc2V0O1xuICAgIH1cblxuICAgIEBpZiAkeSA9PSB0b3Agb3IgJHkgPT0gYm90dG9tIHtcbiAgICAgICN7JHl9OiAkb2Zmc2V0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cbn1cblxuLypcbiAgU2V0IHRoZSBhbGlnbm1lbnQgb2YgbWVudSBpdGVtcyAobGkpIHdpdGhpbiBhIG1lbnUtYmFyXG5cbiAgbGVmdDogSXRlbXMgYWxpZ24gdG8gdGhlIGxlZnQuXG4gIHJpZ2h0OiBJdGVtcyBhbGlnbiB0byB0aGUgcmlnaHQuXG4gIGNlbnRlcjogSXRlbXMgYWxpZ24gdG8gdGhlIGNlbnRlci5cbiAganVzdGlmeTogSXRlbXMgYXJlIHNwYWNlZCBlcXVhbGx5IGFwYXJ0IHNvIHRoZXkgb2NjdXB5IHRoZSBzcGFjZSBvZiB0aGUgZW50aXJlIGdyaWQuXG4gIHNwYWNlZDogSXRlbXMgYXJlIGdpdmVuIGVxdWFsIHNwYWNlIHRvIHRoZWlyIGxlZnQgYW5kIHJpZ2h0LlxuXG4gIEBncm91cCBtZW51LWJhclxuXG4gIEBwYXJhbSB7c3RyaW5nfSAkYWxpZ24gLSBBbGlnbm1lbnQgdG8gdXNlLlxuXG4gIEBvdXRwdXQgQW4gYXBwcm9wcmlhdGUganVzdGlmeS1jb250ZW50IHZhbHVlLlxuKi9cbkBtaXhpbiBtZW51LWJhci1hbGlnbigkYWxpZ246IGxlZnQpIHtcbiAgJG9wdGlvbnM6IChcbiAgICBsZWZ0OiBmbGV4LXN0YXJ0LFxuICAgIHJpZ2h0OiBmbGV4LWVuZCxcbiAgICBjZW50ZXI6IGNlbnRlcixcbiAgICBqdXN0aWZ5OiBzcGFjZS1iZXR3ZWVuLFxuICAgIHNwYWNlZDogc3BhY2UtYXJvdW5kLFxuICApO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IG1hcC1nZXQoJG9wdGlvbnMsICRhbGlnbik7XG59XG5cbi8qXG4gIENTUyBvdXRwdXRcbiovXG5AaW5jbHVkZSBleHBvcnRzKG1lbnUtYmFyKSB7XG4gIC5tZW51LWJhciB7XG4gICAgQGV4dGVuZCAlbWVudS1iYXI7XG4gICAgQGluY2x1ZGUgbWVudS1iYXItc3R5bGU7XG5cbiAgICAvLyBQb3NpdGlvbmluZ1xuICAgICYsICYuaG9yaXpvbnRhbCAgeyBAaW5jbHVkZSBtZW51LWJhci1sYXlvdXQoaG9yaXpvbnRhbCk7IH1cbiAgICAmLnZlcnRpY2FsICAgICAgIHsgQGluY2x1ZGUgbWVudS1iYXItbGF5b3V0KHZlcnRpY2FsKTsgfVxuXG4gICAgLy8gQ29uZGVuc2VkIGJhclxuICAgICYuY29uZGVuc2Uge1xuICAgICAgPiBsaSB7IGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gTWVudSBJdGVtc1xuICAgICYuYWxpZ24tcmlnaHQgICB7IEBpbmNsdWRlIG1lbnUtYmFyLWFsaWduKHJpZ2h0KTsgfVxuICAgICYuYWxpZ24tY2VudGVyICB7IEBpbmNsdWRlIG1lbnUtYmFyLWFsaWduKGNlbnRlcik7IH1cbiAgICAmLmFsaWduLWp1c3RpZnkgeyBAaW5jbHVkZSBtZW51LWJhci1hbGlnbihqdXN0aWZ5KTsgfVxuICAgICYuYWxpZ24tc3BhY2VkICB7IEBpbmNsdWRlIG1lbnUtYmFyLWFsaWduKHNwYWNlZCk7IH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAmLiN7JHNpemV9LWNvbmRlbnNlIHsgbGkgeyBmbGV4OiAwIDAgYXV0bzsgfSB9XG4gICAgICAgICYuI3skc2l6ZX0tZXhwYW5kICAgeyBsaSB7IGZsZXg6IDEgMCBhdXRvOyB9IH1cblxuICAgICAgICAvLyBSZXNwb25zaXZlIEFsaWdubWVudFxuICAgICAgICAmLiN7JHNpemV9LWFsaWduLWxlZnQgICB7IEBpbmNsdWRlIG1lbnUtYmFyLWFsaWduKGxlZnQpOyB9XG4gICAgICAgICYuI3skc2l6ZX0tYWxpZ24tcmlnaHQgICB7IEBpbmNsdWRlIG1lbnUtYmFyLWFsaWduKHJpZ2h0KTsgfVxuICAgICAgICAmLiN7JHNpemV9LWFsaWduLWNlbnRlciAgeyBAaW5jbHVkZSBtZW51LWJhci1hbGlnbihjZW50ZXIpOyB9XG4gICAgICAgICYuI3skc2l6ZX0tYWxpZ24tanVzdGlmeSB7IEBpbmNsdWRlIG1lbnUtYmFyLWFsaWduKGp1c3RpZnkpOyB9XG4gICAgICAgICYuI3skc2l6ZX0tYWxpZ24tc3BhY2VkICB7IEBpbmNsdWRlIG1lbnUtYmFyLWFsaWduKHNwYWNlZCk7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHBvc2l0aW9uaW5nXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgQGluY2x1ZGUgbWVudS1iYXItbGF5b3V0KGhvcml6b250YWwpO1xuICAgICAgICB9XG4gICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgIEBpbmNsdWRlIG1lbnUtYmFyLWxheW91dCh2ZXJ0aWNhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJY29uIHBvc2l0aW9uaW5nXG4gICAgJiwgJi5pY29uLXRvcCB7IEBpbmNsdWRlIG1lbnUtYmFyLWljb25zKHRvcCk7IH1cbiAgICAmLmljb24tcmlnaHQgIHsgQGluY2x1ZGUgbWVudS1iYXItaWNvbnMocmlnaHQpOyB9XG4gICAgJi5pY29uLWJvdHRvbSB7IEBpbmNsdWRlIG1lbnUtYmFyLWljb25zKGJvdHRvbSk7IH1cbiAgICAmLmljb24tbGVmdCAgIHsgQGluY2x1ZGUgbWVudS1iYXItaWNvbnMobGVmdCk7IH1cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBlYWNoICRwb3MgaW4gKHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1pY29uLSN7JHBvc30geyBAaW5jbHVkZSBtZW51LWJhci1pY29ucygkcG9zKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTGFiZWxzXG4gICAgJi5sYWJlbC1zaWRlICAgeyBAaW5jbHVkZSBtZW51LWJhci1sYWJlbHMocmlnaHQsIGNlbnRlcik7IH1cbiAgICAmLmxhYmVsLWNvcm5lciB7IEBpbmNsdWRlIG1lbnUtYmFyLWxhYmVscyhyaWdodCwgdG9wKTsgfVxuXG4gICAgLy8gQ29sb3JpbmdcbiAgICAmLnByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgbWVudS1iYXItc3R5bGUoJHByaW1hcnktY29sb3IsICRhdXRvY29sb3I6IHRydWUpO1xuICAgIH1cbiAgICAmLmRhcmsge1xuICAgICAgQGluY2x1ZGUgbWVudS1iYXItc3R5bGUoJGRhcmstY29sb3IsICRhdXRvY29sb3I6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIFRpdGxlXG4gICAgPiBsaS50aXRsZSB7XG4gICAgICBwYWRkaW5nOiAkbWVudWJhci1pdGVtLXBhZGRpbmc7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cblxuICAvLyBNZW51IGdyb3Vwc1xuICAubWVudS1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgfVxuXG4gICAgPiAubWVudS1ncm91cC1sZWZ0LCA+IC5tZW51LWdyb3VwLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNZW51IGJhciBpcyBjb25kZW5zZWRcbiAgICAubWVudS1iYXIge1xuICAgICAgPiBsaSB7IGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLy8gQ29sb3JpbmcgY2xhc3MgY2FzY2FkZXMgZG93biB0byB0aGUgbWVudSBiYXJcbiAgICAmLnByaW1hcnkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAubWVudS1iYXIge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWJhci1zdHlsZSgkcHJpbWFyeS1jb2xvciwgJGF1dG9jb2xvcjogdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgICYuZGFyayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1jb2xvcjtcbiAgICAgIC5tZW51LWJhciB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYmFyLXN0eWxlKCRkYXJrLWNvbG9yLCAkYXV0b2NvbG9yOiB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0IFwicGFuZWxcIjtcblxuLypcbiAgVEhFIEdSSURcbiAgLS0tLS0tLS1cblxuICBGb3VuZGF0aW9uJ3MgbWFnaWNhbCwgZmxleGJveC1wb3dlcmVkIGdyaWQuXG5cbiAgRmVhdHVyZXM6XG4gICAtIEhvcml6b250YWwgb3IgdmVydGljYWwgZ3JpZHNcbiAgIC0gQXV0by1zaXppbmcgb3IgcGVyY2VudGFnZSB3aWR0aCBncmlkIGJsb2Nrc1xuICAgLSBJbmRlcGVuZGVudGx5LXNjcm9sbGFibGUgYmxvY2tzXG4gICAtIENvbHVtbiBhbGlnbm1lbnRcbiAgIC0gU291cmNlIG9yZGVyaW5nXG4gICAtIE9mZnNldHNcbiovXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gR3JpZFxuJGNvbnRhaW5lci13aWR0aDogcmVtLWNhbGMoOTAwKSAhZGVmYXVsdDtcbiRibG9jay1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG4kdG90YWwtY29sdW1uczogMTIgIWRlZmF1bHQ7XG4kYmxvY2stZ3JpZC1tYXgtc2l6ZTogNiAhZGVmYXVsdDtcbi8vL1xuXG4vKlxuICBEZWZpbmUgdGhlIHNpemUgb2YgYSBncmlkIGJsb2NrLiBCbG9ja3MgYXJlIGZsZXggaXRlbXMuIEJ5IGRlZmF1bHQsIHRoZXkgc3RyZXRjaCB0byBmaWxsIGFsbCBhdmFpbGFibGUgc3BhY2UsIGJhc2VkIG9uIHRoZSBzaXplIG9mIHNpYmxpbmcgYmxvY2tzLiBUaGlzIGlzIHRoZSBcImV4cGFuZFwiIGJlaGF2aW9yLlxuXG4gIElmIHNldCB0byBcInNocmlua1wiLCB0aGUgYmxvY2sgd2lsbCBjb250cmFjdCBhbmQgb25seSBmaWxsIGFzIG11Y2ggc3BhY2UgYXMgaXQgbmVlZHMgZm9yIGl0cyBjb250ZW50LlxuXG4gIElmIHNldCB0byBhIG51bWJlciwgdGhlIGJsb2NrIHdpbGwgYmUgZ2l2ZW4gYSBwZXJjZW50YWdlIHdpZHRoLCBiYXNlZCBvbiB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgKDEyIGJ5IGRlZmF1bHQpLiBQZXJjZW50YWdlIHdpZHRocyBkb24ndCB3b3JrIGlmIGEgYmxvY2sgaXMgaW5zaWRlIGEgdmVydGljYWwgZ3JpZC5cblxuICBAZ3JvdXAgZ3JpZFxuXG4gIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gJHNpemUgLSBTaXppbmcgYmVoYXZpb3Igb2YgdGhlIGJsb2NrLiBTaG91bGQgYmUgZXhwYW5kLCBzaHJpbmssIG9yIGEgbnVtYmVyLlxuXG4gIEBvdXRwdXQgVGhlIGZsZXgtYmFzaXMsIGZsZXgtZ3JvdywgYW5kIGZsZXgtc2hyaW5rIHByb3BlcnRpZXMuXG4qL1xuQG1peGluIGdyaWQtc2l6ZSgkc2l6ZTogZXhwYW5kKSB7XG4gIEBpZiAodHlwZS1vZigkc2l6ZSkgPT0gJ251bWJlcicpIHtcbiAgICAkcGN0OiBwZXJjZW50YWdlKCRzaXplIC8gJHRvdGFsLWNvbHVtbnMpO1xuICAgIGZsZXg6IDAgMCAkcGN0O1xuICAgIC8vIG1heC13aWR0aCBwcmV2ZW50cyBjb2x1bW5zIGZyb20gd3JhcHBpbmcgZWFybHkgaW4gSUUxMC8xMVxuICAgIG1heC13aWR0aDogJHBjdDtcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gc2hyaW5rKSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09IGV4cGFuZCkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG59XG4vKlxuICBTZXQgdGhlIG9yaWVudGF0aW9uIG9mIGJsb2NrcyB3aXRoaW4gdGhpcyBibG9jay4gVGhlIGdyaWQgaXMgcmUtb3JpZW50ZWQgYnkgY2hhbmdpbmcgdGhlIGZsZXggZGlyZWN0aW9uIG9mIHRoZSBibG9jay5cblxuICBAZ3JvdXAgZ3JpZFxuXG4gIEBwYXJhbSB7c3RyaW5nfSAkb3JpZW50YXRpb24gLSBEaXJlY3Rpb24gb2YgdGhlIGdyaWQsIGVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsLlxuXG4gIEBvdXRwdXQgQSBmbGV4LWZsb3cgcHJvcGVydHkgdG8gbWF0Y2ggdGhlIGRpcmVjdGlvbiBnaXZlbi5cbiovXG5AbWl4aW4gZ3JpZC1vcmllbnQoJG9yaWVudGF0aW9uOiBob3Jpem9udGFsKSB7XG4gIEBpZiAoJG9yaWVudGF0aW9uID09IHZlcnRpY2FsKSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG4gIEBlbHNlIHtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICB9XG59XG4vKlxuICBTdHJldGNoIGEgZ3JpZCdzIGNoaWxkIGJsb2NrcyBhY3Jvc3MgaXRzIGNyb3NzLWF4aXMsIG1ha2luZyBldmVyeSBjb2x1bW4gYXBwZWFyIHRvIGhhdmUgdGhlIHNhbWUgaGVpZ2h0LlxuXG4gIEBncm91cCBncmlkXG5cbiAgQHBhcmFtIHtib29sfSAkc3RyZXRjaCAtIFN0cmV0Y2ggYmxvY2tzIGlmIHRydWUsIG9yIGFsaWduIGJsb2NrcyB0byB0b3AgaWYgZmFsc2UuXG5cbiAgQG91dHB1dCBTZXRzIGFsaWduLWl0ZW1zIHRvIFwic3RyZXRjaFwiIGlmICRzdHJldGNoIGlzIHRydWUsIG9yIFwiZmxleC1zdGFydFwiICh0aGUgZGVmYXVsdCB2YWx1ZSkgaWYgZmFsc2UuXG4qL1xuQG1peGluIGdyaWQtd3JhcCgkd3JhcDogdHJ1ZSkge1xuICBAaWYgJHdyYXAge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbn1cbi8qXG4gIFNldCB0aGUgYWxpZ25tZW50IG9mIGJsb2NrcyB3aXRoaW4gYSBncmlkLlxuXG4gIGxlZnQ6IEl0ZW1zIGFsaWduIHRvIHRoZSBsZWZ0LlxuICByaWdodDogSXRlbXMgYWxpZ24gdG8gdGhlIHJpZ2h0LlxuICBjZW50ZXI6IEl0ZW1zIGFsaWduIHRvIHRoZSBjZW50ZXIuXG4gIGp1c3RpZnk6IEl0ZW1zIGFyZSBzcGFjZWQgZXF1YWxseSBhcGFydCBzbyB0aGV5IG9jY3VweSB0aGUgc3BhY2Ugb2YgdGhlIGVudGlyZSBncmlkLlxuICBzcGFjZWQ6IEl0ZW1zIGFyZSBnaXZlbiBlcXVhbCBzcGFjZSB0byB0aGVpciBsZWZ0IGFuZCByaWdodC5cblxuICBAZ3JvdXAgZ3JpZFxuXG4gIEBwYXJhbSB7c3RyaW5nfSAkYWxpZ24gLSBBbGlnbm1lbnQgdG8gdXNlLlxuXG4gIEBvdXRwdXQgQW4gYXBwcm9wcmlhdGUganVzdGlmeS1jb250ZW50IHZhbHVlLlxuKi9cbkBtaXhpbiBncmlkLWFsaWduKCRhbGlnbjogbGVmdCkge1xuICAkb3B0aW9uczogKFxuICAgIGxlZnQ6IGZsZXgtc3RhcnQsXG4gICAgcmlnaHQ6IGZsZXgtZW5kLFxuICAgIGNlbnRlcjogY2VudGVyLFxuICAgIGp1c3RpZnk6IHNwYWNlLWJldHdlZW4sXG4gICAgc3BhY2VkOiBzcGFjZS1hcm91bmQsXG4gICk7XG4gIGp1c3RpZnktY29udGVudDogbWFwLWdldCgkb3B0aW9ucywgJGFsaWduKTtcbn1cbi8qXG4gIFNldCB0aGUgc291cmNlIG9yZGVyIG9mIGEgYmxvY2suIEl0ZW1zIHdpdGggbG93ZXIgbnVtYmVycyBhcHBlYXIgZmlyc3QuIElmIG11bHRpcGxlIGl0ZW1zIGhhdmUgdGhlIHNhbWUgbnVtYmVyLCB0aGUgb25lIGluIHRoZSBIVE1MIGZpcnN0IHdpbGwgYXBwZWFyIGZpcnN0LlxuXG4gIEBncm91cCBncmlkXG5cbiAgQHBhcmFtIHtudW1iZXJ9ICRvcmRlciAtIFBvc2l0aW9uIGluIHNvdXJjZSBvcmRlci5cblxuICBAb3V0cHV0IEFuIG9yZGVyIHByb3BlcnR5LlxuKi9cbkBtaXhpbiBncmlkLW9yZGVyKCRvcmRlcjogMCkge1xuICBvcmRlcjogJG9yZGVyO1xufVxuLypcbiAgQ29sbGFwc2UgYSBjb250ZW50IGJsb2NrIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLlxuXG4gIEBncm91cCBncmlkXG5cbiAgQHBhcmFtIHtib29sfSAkY29sbGFwc2UgLSBDb2xsYXBzZXMgdGhlIGJsb2NrIGlmIHRydWUuXG5cbiAgQG91dHB1dCBBIHBhZGRpbmcgdmFsdWUuXG5cbiAgQHRvZG8gTm8gd2F5IHRvIHJldmVyc2UgY29sbGFwc2UgdXNpbmcgdGhpcyBtaXhpbi4gU29sdXRpb246XG4gICAgLSBJZiB0cnVlLCBhZGQgcGFkZGluZzogMDtcbiAgICAtIElmIGZhbHNlLCBhZGQgcGFkZGluZzogMXJlbTtcbiAgICAtIElmIG51bGwsIGFkZCBub3RoaW5nLCB0byBjdXQgZG93biBvbiBDU1Mgb3V0cHV0XG4gICAgLSBNYWtlIG51bGwgdGhlIGRlZmF1bHQgdmFsdWVcbiovXG5AbWl4aW4gZ3JpZC1jb2xsYXBzZSgkY29sbGFwc2U6IHRydWUpIHtcbiAgQGlmICgkY29sbGFwc2UpIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG4vKlxuICBDb25zdHJhaW4gdGhlIHNpemUgb2YgYSBibG9jayB0byB0aGUgc2l6ZSBvZiB0aGUgYXZlcmFnZSBncmlkIHJvdywgYW5kIGNlbnRlci1hbGlnbiBpdC4gVGhpcyBpbWl0YXRlcyB0aGUgYmVoYXZpb3Igb2Ygb3JkaW5hcnkgRm91bmRhdGlvbiByb3dzLlxuXG4gIEBncm91cCBncmlkXG5cbiAgQHBhcmFtIHtib29sfSAkY29udGFpbmVyIC0gQWRkcyBjb250YWluZXIgc3R5bGVzIGlmIHRydWUuXG5cbiAgQG91dHB1dCBBIG1heGltdW0gd2lkdGggYW5kIHRoZSBnb29kIG9sZCBtYXJnaW46IDAgYXV0byBmb3IgY2VudGVyIGFsaWdubWVudC5cbiovXG5AbWl4aW4gZ3JpZC1jb250YWluZXIoJHdpZHRoOiAkY29udGFpbmVyLXdpZHRoLCAkYWxpZ246IGNlbnRlcikge1xuICAkbWFyZ2luczogKFxuICAgIGxlZnQ6ICAwIGF1dG8gMCAwLFxuICAgIHJpZ2h0OiAwIDAgMCBhdXRvLFxuICAgIGNlbnRlcjogMCBhdXRvLFxuICApO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgbWFyZ2luOiBtYXAtZ2V0KCRtYXJnaW5zLCAkYWxpZ24pO1xufVxuLypcbiAgQWRkIG5lZ2F0aXZlIG1hcmdpbnMgdG8gYSBibG9jaywgZXF1YWwgdG8gdGhlIHBhZGRpbmcgb2YgYSBjb250ZW50IGJsb2NrLiBUaGlzIGFsaWducyB0aGUgZWRnZXMgb2YgYSBibG9jayBuZXN0ZWQgaW5zaWRlIGEgY29udGVudCBibG9jay5cblxuICBAZ3JvdXAgZ3JpZFxuXG4gIEBwYXJhbSB7Ym9vbH0gJG5lc3QgLSBBZGRzIG5lZ2F0aXZlIG1hcmdpbnMgaWYgdHJ1ZS5cblxuICBAb3V0cHV0IE5lZ2F0aXZlIG1hcmdpbiB2YWx1ZXMuXG4qL1xuQG1peGluIGdyaWQtbmVzdCgkbmVzdDogdHJ1ZSkge1xuICBAaWYgKCRuZXN0KSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gIH1cbn1cbi8qXG4gIE9mZnNldCBhIGJsb2NrIGJ5IGFkZGluZyBhIGxlZnQgbWFyZ2luLlxuXG4gIEBncm91cCBncmlkXG5cbiAgQHBhcmFtIHtudW1iZXIgfCBib29sfSAkb2Zmc2V0IC0gSWYgZmFsc2UsIG5vdGhpbmcgaXMgb3V0cHV0LiBJZiBhIG51bWJlciwgb2Zmc2V0cyB0aGUgY29sdW1uIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNvbHVtbnMuXG5cbiAgQG91dHB1dCBBIGxlZnQgbWFyZ2luIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgY29sdW1ucyBzcGVjaWZpZWQsIGFuZCB0aGUgZ2xvYmFsIG51bWJlciBvZiBjb2x1bW5zLlxuKi9cbkBtaXhpbiBncmlkLW9mZnNldCgkb2Zmc2V0OiBmYWxzZSkge1xuICBAaWYgKCRvZmZzZXQgIT0gZmFsc2UpIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgkb2Zmc2V0IC8gJHRvdGFsLWNvbHVtbnMpO1xuICB9XG59XG5cbi8qXG4gIFJlc2V0cyBzdHlsZXMgc2V0IGJ5IHBhbmVscy4gVXNlIHRoaXMgd2hlbiBhIHBhbmVsIHRyYW5zZm9ybXMgaW50byBhIGJsb2NrIG9uIGxhcmdlciBzY3JlZW5zLlxuXG4gIEBncm91cCBncmlkXG5cbiAgQG91dHB1dCBSZXNldHMgdG8gdHJhbnNmb3JtLCBwb3NpdGlvbiwgYW5kIGEgZmV3IHZpc3VhbCBzdHlsZXMuXG4qL1xuQG1peGluIGdyaWQtcGFuZWwtcmVzZXQoKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB6LWluZGV4OiBhdXRvO1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4vKlxuICBGcmFtZXMgYXJlIGNvbnRhaW5lcnMgdGhhdCBzdHJldGNoIHRvIHRoZSBmdWxsIGRpbW1lbnNpb25zIG9mIHRoZSBicm93c2VyIHdpbmRvdy5cbiovXG5AbWl4aW4gZ3JpZC1mcmFtZSgkc2l6ZTogZXhwYW5kLCAkb3JpZW50YXRpb246IGhvcml6b250YWwsICR3cmFwOiBmYWxzZSwgJGFsaWduOiBsZWZ0LCAkb3JkZXI6IDApIHtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgZ3JpZC1zaXplKCRzaXplKTtcbiAgQGluY2x1ZGUgZ3JpZC1vcmllbnQoJG9yaWVudGF0aW9uKTtcbiAgQGluY2x1ZGUgZ3JpZC13cmFwKCR3cmFwKTtcbiAgQGluY2x1ZGUgZ3JpZC1hbGlnbigkYWxpZ24pO1xuICBAaW5jbHVkZSBncmlkLW9yZGVyKCRvcmRlcik7XG59XG5cbi8qXG4gIEdyb3VwcyBhcmUgY29sbGVjdGlvbnMgb2YgY29udGVudCBpdGVtcy4gVGhleSdyZSB0aGUgXCJyb3dzXCIgb2YgRm91bmRhdGlvbiBmb3IgQXBwcy5cbiovXG5AbWl4aW4gZ3JpZC1ibG9jaygkc2l6ZTogZXhwYW5kLCAkb3JpZW50YXRpb246IGhvcml6b250YWwsICR3cmFwOiBmYWxzZSwgJGFsaWduOiBsZWZ0LCAkb3JkZXI6IDApIHtcbiAgQGluY2x1ZGUgZ3JpZC1mcmFtZSgkc2l6ZSwgJG9yaWVudGF0aW9uLCAkd3JhcCwgJGFsaWduLCAkb3JkZXIpO1xuXG4gIC8vIFJlc2V0IHRoZSBoZWlnaHQgdXNlZCBieSBmcmFtZXNcbiAgaGVpZ2h0OiBhdXRvO1xuXG4gIC8vIEJsb2NrcyB3aWxsIHNjcm9sbCBieSBkZWZhdWx0IGlmIHRoZWlyIGNvbnRlbnQgb3ZlcmZsb3dzXG4gIEBpZiAoJG9yaWVudGF0aW9uID09IHZlcnRpY2FsKSB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gIC8vIEFkZCBzY3JvbGxpbmcgd2l0aCBpbmVydGlhXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG59XG5cbi8qXG4gIEJsb2NrcyBhcmUgY29udGFpbmVycyBmb3IgYWN0dWFsIGNvbnRlbnQuIFRoZXkncmUgdGhlIFwiY29sdW1uc1wiIG9mIEZvdW5kYXRpb24gZm9yIEFwcHMuXG4qL1xuQG1peGluIGdyaWQtY29udGVudCgkc2l6ZTogZXhwYW5kLCAkb2Zmc2V0OiBudWxsLCAkb3JkZXI6IG51bGwpIHtcbiAgLy8gQ29udGVudCBibG9ja3MgYXJlIG5vdCBmbGV4IGl0ZW1zIGFuZCBoYXZlIHBhZGRpbmdcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAgJGJsb2NrLXBhZGRpbmc7XG5cbiAgLy8gQWRkIHNjcm9sbGluZyB3aXRoIGluZXJ0aWFcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcblxuICBAaW5jbHVkZSBncmlkLXNpemUoJHNpemUpO1xuICBAaWYgJG9mZnNldCAhPSBudWxsIHsgQGluY2x1ZGUgZ3JpZC1vZmZzZXQoJG9mZnNldCk7IH1cbiAgQGlmICRvcmRlciAhPSBudWxsICB7IEBpbmNsdWRlIGdyaWQtb3JkZXIoJG9yZGVyKTsgfVxufVxuXG5AbWl4aW4gZ3JpZC1sYXlvdXQoJHVwKSB7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgPiBsaSwgPiBkaXYsID4gc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMCAxcmVtIDFyZW07XG4gICAgZmxleDogMCAwIHBlcmNlbnRhZ2UoMSAvICR1cCk7XG4gIH1cbn1cblxuLy8gQ1NTIE91dHB1dFxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vIFNoYXJlZCBzdHlsZXMgZm9yIGZyYW1lcyBhbmQgYmxvY2tzIChwYXJlbnQgZWxlbWVudHMpXG4lYmxvY2stY29yZSB7XG4gIC8vIENoYW5nZSB0aGUgZGlyZWN0aW9uIGNoaWxkcmVuIGZsb3dcbiAgJi52ZXJ0aWNhbCB7IEBpbmNsdWRlIGdyaWQtb3JpZW50KHZlcnRpY2FsKTsgfVxuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAmLiN7JHNpemV9LXZlcnRpY2FsICAgeyBAaW5jbHVkZSBncmlkLW9yaWVudCh2ZXJ0aWNhbCk7IH1cbiAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7IEBpbmNsdWRlIGdyaWQtb3JpZW50KGhvcml6b250YWwpOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gQWxpZ24gdGhlIGNoaWxkcmVuIG9mIGEgZ3JpZCBibG9ja1xuICAmLmFsaWduLXJpZ2h0ICAgeyBAaW5jbHVkZSBncmlkLWFsaWduKHJpZ2h0KTsgfVxuICAmLmFsaWduLWNlbnRlciAgeyBAaW5jbHVkZSBncmlkLWFsaWduKGNlbnRlcik7IH1cbiAgJi5hbGlnbi1qdXN0aWZ5IHsgQGluY2x1ZGUgZ3JpZC1hbGlnbihqdXN0aWZ5KTsgfVxuICAmLmFsaWduLXNwYWNlZCAgeyBAaW5jbHVkZSBncmlkLWFsaWduKHNwYWNlZCk7IH1cblxuICAvLyBBbGxvdyBjaGlsZCBlbGVtZW50cyB0byB3cmFwXG4gICYud3JhcCB7IEBpbmNsdWRlIGdyaWQtd3JhcCh0cnVlKTsgfVxufVxuXG4vLyBTaGFyZWQgc3R5bGVzIGZvciBibG9ja3MgYW5kIGNvbnRlbnQgYmxvY2tzIChjaGlsZCBlbGVtZW50cylcbiVjaGlsZC1jb3JlIHtcbiAgLy8gU2hyaW5rIGEgZmxleCBpdGVtIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIHNwYWNlIGl0IG5lZWRzXG4gICYuc2hyaW5rIHsgQGluY2x1ZGUgZ3JpZC1zaXplKHNocmluayk7IH1cblxuICAvLyBQcmV2ZW50IGFuIGVsZW1lbnQgZnJvbSBzY3JvbGxpbmdcbiAgJi5ub3Njcm9sbCB7IG92ZXJmbG93OiBoaWRkZW47IH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhncmlkKSB7XG4gIC8vIFRoZSBjb3JlIGdyaWQgZWxlbWVudHM6XG4gIC8vICAtIEZyYW1lXG4gIC8vICAtIEJsb2NrXG4gIC8vICAtIENvbnRlbnQgYmxvY2tcbiAgLy8gIC0gQ29udGFpbmVyXG4gIC5ncmlkLWZyYW1lIHtcbiAgICBAZXh0ZW5kICVibG9jay1jb3JlO1xuICAgIEBpbmNsdWRlIGdyaWQtZnJhbWU7XG4gIH1cbiAgLmdyaWQtYmxvY2sge1xuICAgIEBleHRlbmQgJWJsb2NrLWNvcmU7XG4gICAgQGV4dGVuZCAlY2hpbGQtY29yZTtcbiAgICBAaW5jbHVkZSBncmlkLWJsb2NrO1xuICB9XG4gIC5ncmlkLWNvbnRlbnQge1xuICAgIEBleHRlbmQgJWNoaWxkLWNvcmU7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZW50O1xuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIEdyaWRzIGluc2lkZSBjb250ZW50IGJsb2NrcyBzaG91bGQgd3JhcCBieSBkZWZhdWx0LCBzbyB0aGV5IG1pbWljIHRyYWRpdGlvbmFsIGZsb2F0IGdyaWRzXG4gICAgLmdyaWQtYmxvY2sge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0oJGJsb2NrLXBhZGRpbmcpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtKCRibG9jay1wYWRkaW5nKTtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAvLyBSZXZlcnNlIHRoZSBhYm92ZSB3cmFwcGluZyBiZWhhdmlvclxuICAgICAgJi5ub3dyYXAge1xuICAgICAgICBAaW5jbHVkZSBncmlkLXdyYXAoZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC1jb250ZW50IHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250YWluZXI7XG5cbiAgICAmLmNvbnRhaW4tbGVmdCAgeyBAaW5jbHVkZSBncmlkLWNvbnRhaW5lcigkYWxpZ246IGxlZnQpOyB9XG4gICAgJi5jb250YWluLXJpZ2h0IHsgQGluY2x1ZGUgZ3JpZC1jb250YWluZXIoJGFsaWduOiByaWdodCk7IH1cbiAgfVxuXG4gIC8vIEJyZWFrcG9pbnQgY2xhc3NlcyBmb3IgYmxvY2tzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIC4jeyRzaXplfS1ncmlkLWJsb2NrIHtcbiAgICAgIEBleHRlbmQgJWJsb2NrLWNvcmU7XG4gICAgICBAZXh0ZW5kICVjaGlsZC1jb3JlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtYmxvY2s7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgcGFuZWwgc3R5bGVzXG4gICAgICAgICYucGFuZWwgeyBAaW5jbHVkZSBncmlkLXBhbmVsLXJlc2V0OyB9XG4gICAgICB9XG4gICAgfVxuICAgIC4jeyRzaXplfS1ncmlkLWNvbnRlbnQge1xuICAgICAgQGV4dGVuZCAlY2hpbGQtY29yZTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbnRlbnQ7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgcGFuZWwgc3R5bGVzXG4gICAgICAgICYucGFuZWwgeyBAaW5jbHVkZSBncmlkLXBhbmVsLXJlc2V0OyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2l6aW5nIGFuZCBvcmRlcmluZyBjbGFzc2VzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMge1xuICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xuICAgIC5vcmRlci0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtb3JkZXIoJGkpOyB9XG4gIH1cbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdG90YWwtY29sdW1ucyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIC8vIEJsb2NrIHNpemluZ1xuICAgICAgICAuI3skc2l6ZX0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtc2l6ZSgkaSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgICAgIC4jeyRzaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1vcmRlcigkaSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gT2Zmc2V0c1xuICAgICAgICAuI3skc2l6ZX0tb2Zmc2V0LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLW9mZnNldCgkaSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFyZW50IHNpemluZyAoYmxvY2sgZ3JpZHMpXG4gICAgICAgIC4jeyRzaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdyaWQtY29udGVudCAubW9kYWwgLmdyaWQtYmxvY2sge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG4iLCIvKlxyXG4gIE5PVElGSUNBVElPTlxyXG4gIC0tLS0tLS0tLS0tLVxyXG5cclxuICBBbiBhbGVydCB0aGF0IHBpbnMgdG8gdGhlIGNvcm5lciBvZiB0aGUgc2NyZWVuIHdoZW4gdHJpZ2dlcmVkIGJ5IEphdmFTY3JpcHQuIEl0IGNhbiBiZSBzZXQgdG8gZGlzYXBwZWFyIGFmdGVyIGEgY2VydGFpbiBwZXJpb2Qgb2YgdGltZSwgb3IgdG8gc3RheSBwdXQgdW50aWwgdGhlIHVzZXIgY2xpY2tzIG9uIGl0LiBBIGN1c3RvbSBhY3Rpb24gY2FuIGJlIGFzaWduZWQgdG8gYSBub3RpZmljYXRpb24gYXMgd2VsbC5cclxuXHJcbiAgT3B0aW9uYWxseSwgdGhlIG5vdGlmaWNhdGlvbnMgZGlyZWN0aXZlIGNhbiBhbHNvIHRhcCBpbnRvIHRoZSBicm93c2VyJ3MgbmF0aXZlIG5vdGlmaWNhdGlvbiBzdXBwb3J0LCBpZiBpdCBleGlzdHMuXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gTm90aWZpY2F0aW9uXHJcbiRub3RpZmljYXRpb24tZGVmYXVsdC1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xyXG4kbm90aWZpY2F0aW9uLXdpZHRoOiByZW0tY2FsYyg0MDApICFkZWZhdWx0O1xyXG4kbm90aWZpY2F0aW9uLW9mZnNldDogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xyXG5cclxuJG5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuJG5vdGlmaWNhdGlvbi1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XHJcbiRub3RpZmljYXRpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xyXG4kbm90aWZpY2F0aW9uLXJhZGl1czogNHB4ICFkZWZhdWx0O1xyXG5cclxuJG5vdGlmaWNhdGlvbi1pY29uLXNpemU6IDYwcHggIWRlZmF1bHQ7XHJcbiRub3RpZmljYXRpb24taWNvbi1tYXJnaW46ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcclxuJG5vdGlmaWNhdGlvbi1pY29uLWFsaWduOiB0b3AgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuXHJcbiVub3RpZmljYXRpb24ge1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLXRvcDogLjVyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XHJcbiAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgaDEge1xyXG4gICAgZm9udC1zaXplOiAxLjI1ZW07XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIHAge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gUGxhY2Vob2xkZXIgYW5pbWF0aW9uXHJcbiAgLy8gdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNlLW91dDtcclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24ge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gIH1cclxufVxyXG5cclxuJW5vdGlmaWNhdGlvbi1jb250YWluZXIge1xyXG4gIHotaW5kZXg6IDMwMDA7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbkBtaXhpbiBub3RpZmljYXRpb24tbGF5b3V0KFxyXG4gICR4OiBudGgoJG5vdGlmaWNhdGlvbi1kZWZhdWx0LXBvc2l0aW9uLCAxKSxcclxuICAkeTogbnRoKCRub3RpZmljYXRpb24tZGVmYXVsdC1wb3NpdGlvbiwgMiksXHJcbiAgJHNpemU6ICRub3RpZmljYXRpb24td2lkdGgsXHJcbiAgJG9mZnNldDogJG5vdGlmaWNhdGlvbi1vZmZzZXRcclxuKSB7XHJcbiAgd2lkdGg6ICRzaXplO1xyXG5cclxuICBAaWYgJHggPT0gcmlnaHQge1xyXG4gICAgcmlnaHQ6ICRvZmZzZXQ7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICR4ID09IGxlZnQge1xyXG4gICAgbGVmdDogJG9mZnNldDtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHggPT0gbWlkZGxlIHtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIG1hcmdpbi1sZWZ0OiAtKCRzaXplIC8gMik7XHJcbiAgfVxyXG5cclxuICBAaWYgJHkgPT0gdG9wIHtcclxuICAgIHRvcDogJG9mZnNldDtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHkgPT0gYm90dG9tIHtcclxuICAgIHRvcDogYXV0bztcclxuICAgIGJvdHRvbTogJG9mZnNldDtcclxuICB9XHJcblxyXG4gIC8vIE9uIHNtYWxsIHNjcmVlbnMsIG5vdGlmaWNhdGlvbnMgYXJlIGZ1bGwgd2lkdGggYnV0IG1haW50YWluIHRoZWlyIHZlcnRpY2FsIG9yaWVudGF0aW9uXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIGxlZnQ6ICRvZmZzZXQ7XHJcbiAgICByaWdodDogJG9mZnNldDtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gIH1cclxufVxyXG5AbWl4aW4gbm90aWZpY2F0aW9uLXN0eWxlKFxyXG4gICRiYWNrZ3JvdW5kOiAkbm90aWZpY2F0aW9uLWJhY2tncm91bmQsXHJcbiAgJGNvbG9yOiAkbm90aWZpY2F0aW9uLWNvbG9yLFxyXG4gICRwYWRkaW5nOiAkbm90aWZpY2F0aW9uLXBhZGRpbmcsXHJcbiAgJHJhZGl1czogJG5vdGlmaWNhdGlvbi1yYWRpdXNcclxuKSB7XHJcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxuXHJcbiAgJiwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XHJcbiAgICBjb2xvcjogJGNvbG9yO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG5vdGlmaWNhdGlvbihcclxuICAkYmFja2dyb3VuZDogJG5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogJG5vdGlmaWNhdGlvbi1jb2xvcixcclxuICAkcGFkZGluZzogJG5vdGlmaWNhdGlvbi1wYWRkaW5nLFxyXG4gICRyYWRpdXM6ICRub3RpZmljYXRpb24tcmFkaXVzXHJcbikge1xyXG4gIEBleHRlbmQgJW5vdGlmaWNhdGlvbjtcclxuICBAaW5jbHVkZSBub3RpZmljYXRpb24tc3R5bGUoJGJhY2tncm91bmQsICRjb2xvciwgJHBhZGRpbmcsICRyYWRpdXMpO1xyXG59XHJcblxyXG5AbWl4aW4gbm90aWZpY2F0aW9uLWNvbnRhaW5lcihcclxuICAkeDogbnRoKCRub3RpZmljYXRpb24tZGVmYXVsdC1wb3NpdGlvbiwgMSksXHJcbiAgJHk6IG50aCgkbm90aWZpY2F0aW9uLWRlZmF1bHQtcG9zaXRpb24sIDIpLFxyXG4gICRzaXplOiAkbm90aWZpY2F0aW9uLXdpZHRoLFxyXG4gICRvZmZzZXQ6ICRub3RpZmljYXRpb24tb2Zmc2V0XHJcbikge1xyXG4gIEBleHRlbmQgJW5vdGlmaWNhdGlvbi1jb250YWluZXI7XHJcbiAgQGluY2x1ZGUgbm90aWZpY2F0aW9uLWxheW91dCgkeCwgJHksICRzaXplLCAkb2Zmc2V0KTtcclxufVxyXG5cclxuQG1peGluIG5vdGlmaWNhdGlvbi1pY29uKFxyXG4gICRzaXplOiAkbm90aWZpY2F0aW9uLWljb24tc2l6ZSxcclxuICAkbWFyZ2luOiAkbm90aWZpY2F0aW9uLWljb24tbWFyZ2luLFxyXG4gICRhbGlnbjogJG5vdGlmaWNhdGlvbi1pY29uLWFsaWduXHJcbikge1xyXG4gICRhbGlnbm1lbnRzOiAoXHJcbiAgICB0b3A6IGZsZXgtc3RhcnQsXHJcbiAgICBtaWRkbGU6IG1pZGRsZSxcclxuICAgIGJvdHRvbTogZmxleC1lbmQsXHJcbiAgKTtcclxuICBmbGV4OiAwIDAgJHNpemU7XHJcbiAgbWFyZ2luLXJpZ2h0OiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgYWxpZ24tc2VsZjogbWFwLWdldCgkYWxpZ25tZW50cywgJGFsaWduKTtcclxuXHJcbiAgaW1nIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLypcclxuICBDU1MgT3V0cHV0XHJcbiovXHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKG5vdGlmaWNhdGlvbikge1xyXG4gIC5ub3RpZmljYXRpb24ge1xyXG4gICAgQGluY2x1ZGUgbm90aWZpY2F0aW9uO1xyXG5cclxuICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLXN0eWxlKCRzdWNjZXNzLWNvbG9yKSB9XHJcbiAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1zdHlsZSgkd2FybmluZy1jb2xvcikgfVxyXG4gICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tc3R5bGUoJGFsZXJ0LWNvbG9yKSB9XHJcbiAgICAmLmRhcmsgICAgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1zdHlsZSgkZGFyay1jb2xvciwgI2ZmZikgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICAuc3RhdGljLW5vdGlmaWNhdGlvbiB7XHJcbiAgICBAaW5jbHVkZSBub3RpZmljYXRpb247XHJcblxyXG4gICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XHJcbiAgICBcclxuICAgICYudG9wLXJpZ2h0ICAgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQocmlnaHQsIHRvcCk7IH1cclxuICAgICYudG9wLWxlZnQgICAgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQobGVmdCwgdG9wKTsgfVxyXG4gICAgJi50b3AtbWlkZGxlICAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLWxheW91dChtaWRkbGUsIHRvcCk7IH1cclxuXHJcbiAgICAmLmJvdHRvbS1yaWdodCAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KHJpZ2h0LCBib3R0b20pOyB9XHJcbiAgICAmLmJvdHRvbS1sZWZ0ICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KGxlZnQsIGJvdHRvbSk7IH1cclxuICAgICYuYm90dG9tLW1pZGRsZSB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQobWlkZGxlLCBib3R0b20pOyB9XHJcblxyXG4gICAgJi5zdWNjZXNzICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tc3R5bGUoJHN1Y2Nlc3MtY29sb3IpIH1cclxuICAgICYud2FybmluZyAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLXN0eWxlKCR3YXJuaW5nLWNvbG9yKSB9XHJcbiAgICAmLmFsZXJ0ICAgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1zdHlsZSgkYWxlcnQtY29sb3IpIH1cclxuICAgICYuZGFyayAgICAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLXN0eWxlKCRkYXJrLWNvbG9yLCAjZmZmKSB9XHJcbiAgfVxyXG5cclxuICAubm90aWZpY2F0aW9uLWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBub3RpZmljYXRpb24tY29udGFpbmVyO1xyXG5cclxuICAgICYudG9wLXJpZ2h0ICAgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQocmlnaHQsIHRvcCk7IH1cclxuICAgICYudG9wLWxlZnQgICAgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQobGVmdCwgdG9wKTsgfVxyXG4gICAgJi50b3AtbWlkZGxlICAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLWxheW91dChtaWRkbGUsIHRvcCk7IH1cclxuXHJcbiAgICAmLmJvdHRvbS1yaWdodCAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KHJpZ2h0LCBib3R0b20pOyB9XHJcbiAgICAmLmJvdHRvbS1sZWZ0ICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KGxlZnQsIGJvdHRvbSk7IH1cclxuICAgICYuYm90dG9tLW1pZGRsZSB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQobWlkZGxlLCBib3R0b20pOyB9XHJcbiAgfVxyXG5cclxuICAubm90aWZpY2F0aW9uLWljb24ge1xyXG4gICAgQGluY2x1ZGUgbm90aWZpY2F0aW9uLWljb247XHJcbiAgfVxyXG4gIC5ub3RpZmljYXRpb24tY29udGVudCB7XHJcbiAgICBmbGV4OiAxO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiLypcclxuICBVVElMSVRJRVNcclxuICAtLS0tLS0tLS1cclxuXHJcbiAgUmVzcG9uc2l2ZSBoZWxwZXIgY2xhc3NlcyB0byBhc3Npc3QgeW91IGluIHF1aWNrbHkgZG9pbmcgYmFzaWMgZm9ybWF0dGluZyBhbmQgbGF5b3V0LlxyXG5cclxuICBGZWF0dXJlczpcclxuICAgLSBWZXJ0aWNhbCBhbGlnbm1lbnRcclxuICAgLSBWaXNpYmlsaXR5XHJcbiAgIC0gVGV4dCBhbGlnbm1lbnRcclxuICAgLSBGbG9hdGluZ1xyXG4qL1xyXG5cclxuJGJsb2NrLXNlbGVjdG9yOiAnW2NsYXNzKj1cImdyaWQtYmxvY2tcIl0nO1xyXG5cclxuQG1peGluIHNob3ctZm9yKCRzaXplLCAkcHJvcDogYmxvY2spIHtcclxuICAmOm5vdCgubmctaGlkZSkge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xyXG4gICAgICBkaXNwbGF5OiAkcHJvcCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUsICRwcm9wOiBibG9jaykge1xyXG4gICY6bm90KC5uZy1oaWRlKSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcclxuICAgICAgZGlzcGxheTogJHByb3AgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSwgJHByb3A6IGJsb2NrKSB7XHJcbiAgJjpub3QoLm5nLWhpZGUpIHtcclxuICAgIGRpc3BsYXk6ICRwcm9wICFpbXBvcnRhbnQ7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplLCAkcHJvcDogYmxvY2spIHtcclxuICAmOm5vdCgubmctaGlkZSkge1xyXG4gICAgZGlzcGxheTogJHByb3AgIWltcG9ydGFudDtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKHV0aWxpdGllcykge1xyXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudFxyXG4gIC52LWFsaWduIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICRhbGlnbi12YWx1ZXM6IChcclxuICAgICAgJ3RvcCc6IGZsZXgtc3RhcnQsXHJcbiAgICAgICdjZW50ZXInOiBjZW50ZXIsXHJcbiAgICAgICdib3R0b20nOiBmbGV4LWVuZCxcclxuICAgICk7XHJcblxyXG4gICAgQGVhY2ggJG9yaWVudCBpbiAodG9wLCBjZW50ZXIsIGJvdHRvbSkge1xyXG4gICAgICAuYWxpZ24tI3skb3JpZW50fSB7XHJcbiAgICAgICAgYWxpZ24tc2VsZjogbWFwLWdldCgkYWxpZ24tdmFsdWVzLCAkb3JpZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xyXG4gICAgICBAZWFjaCAkb3JpZW50IGluICh0b3AsIGNlbnRlciwgYm90dG9tKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xyXG4gICAgICAgICAgLiN7JHNpemV9LWFsaWduLSN7JG9yaWVudH0ge1xyXG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBtYXAtZ2V0KCRhbGlnbi12YWx1ZXMsICRvcmllbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVmlzaWJpbGl0eVxyXG4gIC5oaWRlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblxyXG4gIC5pbnZpc2libGUgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cclxuXHJcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XHJcbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xyXG4gICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XHJcbiAgICAgICYjeyRibG9jay1zZWxlY3Rvcn0geyBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSwgZmxleCk7IH1cclxuICAgIH1cclxuXHJcbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xyXG4gICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XHJcbiAgICAgICYjeyRibG9jay1zZWxlY3Rvcn0geyBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSwgZmxleCk7IH1cclxuICAgIH1cclxuXHJcbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XHJcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xyXG4gICAgICAmI3skYmxvY2stc2VsZWN0b3J9IHsgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSwgZmxleCk7IH1cclxuICAgIH1cclxuXHJcbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XHJcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xyXG4gICAgICAmI3skYmxvY2stc2VsZWN0b3J9IHsgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSwgZmxleCk7IH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBlYWNoICRvcmllbnRhdGlvbiBpbiAocG9ydHJhaXQsIGxhbmRzY2FwZSkge1xyXG4gICAgLmhpZGUtZm9yLSN7JG9yaWVudGF0aW9ufSB7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICYjeyRibG9jay1zZWxlY3Rvcn0geyBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaG93LWZvci0jeyRvcmllbnRhdGlvbn0ge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgIFxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRvcmllbnRhdGlvbikge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgJiN7JGJsb2NrLXNlbGVjdG9yfSB7IGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgVGV4dCBhbGlnbm1lbnRcclxuICAqL1xyXG4gIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xyXG4gICAgLnRleHQtI3skYWxpZ259IHtcclxuICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xyXG4gICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcclxuICAgICAgICAuI3skc2l6ZX0tb25seS10ZXh0LSN7JGFsaWdufSB7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgRmxvYXRpbmdcclxuICAqL1xyXG4gIC5jbGVhcmZpeCB7IEBpbmNsdWRlIGNsZWFyZml4OyB9XHJcblxyXG4gIEBlYWNoICRmbG9hdCBpbiAobGVmdCwgcmlnaHQsIG5vbmUpIHtcclxuICAgIC5mbG9hdC0jeyRmbG9hdH0ge1xyXG4gICAgICBmbG9hdDogI3skZmxvYXR9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBBcHBzXG4vL1xuLy8gTWl4aW5zXG4vLyAtLS0tLS1cbi8vIFRoZSBmcmFtZXdvcmsgY29tZXMgd2l0aCBhIG51bWJlciBvZiBtaXhpbnMgdGhhdCBoZWxwIHlvdSBlYXNpbHkgY3JlYXRlIGNvbW1vbiBzbWFsbCBjb21wb25lbnRzLFxuLy8gbGlrZSB0cmlhbmdsZXMgYW5kIG1lbnUgaWNvbnMuXG5cbi8vLyBDU1MgVHJpYW5nbGVcbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBwb3B1cCB0YWlscywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge2NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtrZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoJHRyaWFuZ2xlLXNpemUsICR0cmlhbmdsZS1jb2xvciwgJHRyaWFuZ2xlLWRpcmVjdGlvbikge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHRvcCkge1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBib3R0b20pIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLy8gSGFtYnVyZ2VyXG4vLy8gQ3JlYXRlcyBhIHRocmVlLWxpbmUgbWVudSBpY29uLCBhZmZlY3Rpb25hdGVseSByZWZlcnJlZCB0byBhcyB0aGUgXCJoYW1idXJnZXIgaWNvblwiLlxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBpY29uLCBpbiByZW0gdW5pdHMuXG4vLy8gQHBhcmFtIHtudW1iZXJ8Ym9vbGVhbn0gJGxlZnQgLSBMZWZ0IG9mZnNldCBvZiB0aGUgaWNvbi4gU2V0IHRvIGBmYWxzZWAgdG8gY2VudGVyIHRoZSBpY29uIGhvcml6b250YWxseS5cbi8vLyBAcGFyYW0ge251bWJlcnxib29sZWFufSAkdG9wIC0gVG9wIG9mZnNldCBvZiB0aGUgaWNvbi4gU2V0IHRvIGBmYWxzZWAgdG8gY2VudGVyIHRoZSBpY29uIHZlcnRpY2FsbHkuXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICR0aGlja25lc3MgLSBIZWlnaHQgb2YgZWFjaCBsaW5lIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ2FwIC0gQW1vdW50IG9mIHNwYWNlIGJldHdlZW4gZWFjaCBsaW5lLlxuLy8vIEBwYXJhbSB7Y29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBsaW5lcy5cbi8vLyBAcGFyYW0ge2NvbG9yfSAkaG92ZXItY29sb3IgLSBDb2xvciBvZiB0aGUgbGluZXMgb24gaG92ZXIuXG5AbWl4aW4gaGFtYnVyZ2VyKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yLCAkb2ZmY2FudmFzKSB7XG4gIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICBAaWYgJG9mZmNhbnZhcyB7XG4gICAgICBAaWYgJHRvcCB7XG4gICAgICAgIHRvcDogJHRvcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0kd2lkdGgvMjtcbiAgICAgIH1cbiAgICAgIEBpZiAkbGVmdCB7XG4gICAgICAgIGxlZnQ6ICRsZWZ0O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiAoJHRhYmJhci1tZW51LWljb24td2lkdGggLSAkd2lkdGgpLzI7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLSR3aWR0aC8yO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMHB4IDAgJHRoaWNrbmVzcyAkY29sb3IsXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkY29sb3IsXG4gICAgICAwICgyICogJGdhcCArIDIqJHRoaWNrbmVzcykgMCAkdGhpY2tuZXNzICRjb2xvcjtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9XG4gIHNwYW46aG92ZXI6YWZ0ZXIge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDBweCAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3I7XG4gIH1cbn1cblxuLy8vIENsZWFyZml4XG4vLy8gVXNlcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy9cbi8vLyBAc2VlIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuQG1peGluIGNsZWFyZml4IHtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIgeyBjb250ZW50OiBcIiBcIjsgZGlzcGxheTogdGFibGU7IH1cbiAgJjphZnRlciB7IGNsZWFyOiBib3RoOyB9XG59XG5cbi8vLyBJbnZpc2libGUgRWxlbWVudFxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgYWNjZXNzaWJsZS5cbi8vL1xuLy8vIEBzZWUgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG59XG5cbi8vLyBJbnZpc2libGUgRWxlbWVudCBPZmZcbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbiR0ZXh0LWlucHV0LXNlbGVjdG9yczogJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sIGlucHV0W3R5cGU9XCJkYXRlXCJdLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSwgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLCBpbnB1dFt0eXBlPVwid2Vla1wiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLCBpbnB1dFt0eXBlPVwidGVsXCJdLCBpbnB1dFt0eXBlPVwidGltZVwiXSwgaW5wdXRbdHlwZT1cInVybFwiXSwgaW5wdXRbdHlwZT1cImNvbG9yXCJdLCB0ZXh0YXJlYSc7XG4iLCIvKiBcbiAqIEZvdW5kYXRpb24gSWNvbnMgdiAzLjBcbiAqIE1hZGUgYnkgWlVSQiAyMDEzIGh0dHA6Ly96dXJiLmNvbS9wbGF5Z3JvdW5kL2ZvdW5kYXRpb24taWNvbi1mb250cy0zXG4gKiBNSVQgTGljZW5zZVxuICovXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJmb3VuZGF0aW9uLWljb25zXCI7XG4gIHNyYzogdXJsKFwiL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1pY29ucy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuXG4uZmktYWRkcmVzcy1ib29rOmJlZm9yZSxcbi5maS1hbGVydDpiZWZvcmUsXG4uZmktYWxpZ24tY2VudGVyOmJlZm9yZSxcbi5maS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSxcbi5maS1hbGlnbi1sZWZ0OmJlZm9yZSxcbi5maS1hbGlnbi1yaWdodDpiZWZvcmUsXG4uZmktYW5jaG9yOmJlZm9yZSxcbi5maS1hbm5vdGF0ZTpiZWZvcmUsXG4uZmktYXJjaGl2ZTpiZWZvcmUsXG4uZmktYXJyb3ctZG93bjpiZWZvcmUsXG4uZmktYXJyb3ctbGVmdDpiZWZvcmUsXG4uZmktYXJyb3ctcmlnaHQ6YmVmb3JlLFxuLmZpLWFycm93LXVwOmJlZm9yZSxcbi5maS1hcnJvd3MtY29tcHJlc3M6YmVmb3JlLFxuLmZpLWFycm93cy1leHBhbmQ6YmVmb3JlLFxuLmZpLWFycm93cy1pbjpiZWZvcmUsXG4uZmktYXJyb3dzLW91dDpiZWZvcmUsXG4uZmktYXNsOmJlZm9yZSxcbi5maS1hc3RlcmlzazpiZWZvcmUsXG4uZmktYXQtc2lnbjpiZWZvcmUsXG4uZmktYmFja2dyb3VuZC1jb2xvcjpiZWZvcmUsXG4uZmktYmF0dGVyeS1lbXB0eTpiZWZvcmUsXG4uZmktYmF0dGVyeS1mdWxsOmJlZm9yZSxcbi5maS1iYXR0ZXJ5LWhhbGY6YmVmb3JlLFxuLmZpLWJpdGNvaW4tY2lyY2xlOmJlZm9yZSxcbi5maS1iaXRjb2luOmJlZm9yZSxcbi5maS1ibGluZDpiZWZvcmUsXG4uZmktYmx1ZXRvb3RoOmJlZm9yZSxcbi5maS1ib2xkOmJlZm9yZSxcbi5maS1ib29rLWJvb2ttYXJrOmJlZm9yZSxcbi5maS1ib29rOmJlZm9yZSxcbi5maS1ib29rbWFyazpiZWZvcmUsXG4uZmktYnJhaWxsZTpiZWZvcmUsXG4uZmktYnVyc3QtbmV3OmJlZm9yZSxcbi5maS1idXJzdC1zYWxlOmJlZm9yZSxcbi5maS1idXJzdDpiZWZvcmUsXG4uZmktY2FsZW5kYXI6YmVmb3JlLFxuLmZpLWNhbWVyYTpiZWZvcmUsXG4uZmktY2hlY2s6YmVmb3JlLFxuLmZpLWNoZWNrYm94OmJlZm9yZSxcbi5maS1jbGlwYm9hcmQtbm90ZXM6YmVmb3JlLFxuLmZpLWNsaXBib2FyZC1wZW5jaWw6YmVmb3JlLFxuLmZpLWNsaXBib2FyZDpiZWZvcmUsXG4uZmktY2xvY2s6YmVmb3JlLFxuLmZpLWNsb3NlZC1jYXB0aW9uOmJlZm9yZSxcbi5maS1jbG91ZDpiZWZvcmUsXG4uZmktY29tbWVudC1taW51czpiZWZvcmUsXG4uZmktY29tbWVudC1xdW90ZXM6YmVmb3JlLFxuLmZpLWNvbW1lbnQtdmlkZW86YmVmb3JlLFxuLmZpLWNvbW1lbnQ6YmVmb3JlLFxuLmZpLWNvbW1lbnRzOmJlZm9yZSxcbi5maS1jb21wYXNzOmJlZm9yZSxcbi5maS1jb250cmFzdDpiZWZvcmUsXG4uZmktY3JlZGl0LWNhcmQ6YmVmb3JlLFxuLmZpLWNyb3A6YmVmb3JlLFxuLmZpLWNyb3duOmJlZm9yZSxcbi5maS1jc3MzOmJlZm9yZSxcbi5maS1kYXRhYmFzZTpiZWZvcmUsXG4uZmktZGllLWZpdmU6YmVmb3JlLFxuLmZpLWRpZS1mb3VyOmJlZm9yZSxcbi5maS1kaWUtb25lOmJlZm9yZSxcbi5maS1kaWUtc2l4OmJlZm9yZSxcbi5maS1kaWUtdGhyZWU6YmVmb3JlLFxuLmZpLWRpZS10d286YmVmb3JlLFxuLmZpLWRpc2xpa2U6YmVmb3JlLFxuLmZpLWRvbGxhci1iaWxsOmJlZm9yZSxcbi5maS1kb2xsYXI6YmVmb3JlLFxuLmZpLWRvd25sb2FkOmJlZm9yZSxcbi5maS1lamVjdDpiZWZvcmUsXG4uZmktZWxldmF0b3I6YmVmb3JlLFxuLmZpLWV1cm86YmVmb3JlLFxuLmZpLWV5ZTpiZWZvcmUsXG4uZmktZmFzdC1mb3J3YXJkOmJlZm9yZSxcbi5maS1mZW1hbGUtc3ltYm9sOmJlZm9yZSxcbi5maS1mZW1hbGU6YmVmb3JlLFxuLmZpLWZpbHRlcjpiZWZvcmUsXG4uZmktZmlyc3QtYWlkOmJlZm9yZSxcbi5maS1mbGFnOmJlZm9yZSxcbi5maS1mb2xkZXItYWRkOmJlZm9yZSxcbi5maS1mb2xkZXItbG9jazpiZWZvcmUsXG4uZmktZm9sZGVyOmJlZm9yZSxcbi5maS1mb290OmJlZm9yZSxcbi5maS1mb3VuZGF0aW9uOmJlZm9yZSxcbi5maS1ncmFwaC1iYXI6YmVmb3JlLFxuLmZpLWdyYXBoLWhvcml6b250YWw6YmVmb3JlLFxuLmZpLWdyYXBoLXBpZTpiZWZvcmUsXG4uZmktZ3JhcGgtdHJlbmQ6YmVmb3JlLFxuLmZpLWd1aWRlLWRvZzpiZWZvcmUsXG4uZmktaGVhcmluZy1haWQ6YmVmb3JlLFxuLmZpLWhlYXJ0OmJlZm9yZSxcbi5maS1ob21lOmJlZm9yZSxcbi5maS1odG1sNTpiZWZvcmUsXG4uZmktaW5kZW50LWxlc3M6YmVmb3JlLFxuLmZpLWluZGVudC1tb3JlOmJlZm9yZSxcbi5maS1pbmZvOmJlZm9yZSxcbi5maS1pdGFsaWM6YmVmb3JlLFxuLmZpLWtleTpiZWZvcmUsXG4uZmktbGFwdG9wOmJlZm9yZSxcbi5maS1sYXlvdXQ6YmVmb3JlLFxuLmZpLWxpZ2h0YnVsYjpiZWZvcmUsXG4uZmktbGlrZTpiZWZvcmUsXG4uZmktbGluazpiZWZvcmUsXG4uZmktbGlzdC1idWxsZXQ6YmVmb3JlLFxuLmZpLWxpc3QtbnVtYmVyOmJlZm9yZSxcbi5maS1saXN0LXRodW1ibmFpbHM6YmVmb3JlLFxuLmZpLWxpc3Q6YmVmb3JlLFxuLmZpLWxvY2s6YmVmb3JlLFxuLmZpLWxvb3A6YmVmb3JlLFxuLmZpLW1hZ25pZnlpbmctZ2xhc3M6YmVmb3JlLFxuLmZpLW1haWw6YmVmb3JlLFxuLmZpLW1hbGUtZmVtYWxlOmJlZm9yZSxcbi5maS1tYWxlLXN5bWJvbDpiZWZvcmUsXG4uZmktbWFsZTpiZWZvcmUsXG4uZmktbWFwOmJlZm9yZSxcbi5maS1tYXJrZXI6YmVmb3JlLFxuLmZpLW1lZ2FwaG9uZTpiZWZvcmUsXG4uZmktbWljcm9waG9uZTpiZWZvcmUsXG4uZmktbWludXMtY2lyY2xlOmJlZm9yZSxcbi5maS1taW51czpiZWZvcmUsXG4uZmktbW9iaWxlLXNpZ25hbDpiZWZvcmUsXG4uZmktbW9iaWxlOmJlZm9yZSxcbi5maS1tb25pdG9yOmJlZm9yZSxcbi5maS1tb3VudGFpbnM6YmVmb3JlLFxuLmZpLW11c2ljOmJlZm9yZSxcbi5maS1uZXh0OmJlZm9yZSxcbi5maS1uby1kb2dzOmJlZm9yZSxcbi5maS1uby1zbW9raW5nOmJlZm9yZSxcbi5maS1wYWdlLWFkZDpiZWZvcmUsXG4uZmktcGFnZS1jb3B5OmJlZm9yZSxcbi5maS1wYWdlLWNzdjpiZWZvcmUsXG4uZmktcGFnZS1kZWxldGU6YmVmb3JlLFxuLmZpLXBhZ2UtZG9jOmJlZm9yZSxcbi5maS1wYWdlLWVkaXQ6YmVmb3JlLFxuLmZpLXBhZ2UtZXhwb3J0LWNzdjpiZWZvcmUsXG4uZmktcGFnZS1leHBvcnQtZG9jOmJlZm9yZSxcbi5maS1wYWdlLWV4cG9ydC1wZGY6YmVmb3JlLFxuLmZpLXBhZ2UtZXhwb3J0OmJlZm9yZSxcbi5maS1wYWdlLWZpbGxlZDpiZWZvcmUsXG4uZmktcGFnZS1tdWx0aXBsZTpiZWZvcmUsXG4uZmktcGFnZS1wZGY6YmVmb3JlLFxuLmZpLXBhZ2UtcmVtb3ZlOmJlZm9yZSxcbi5maS1wYWdlLXNlYXJjaDpiZWZvcmUsXG4uZmktcGFnZTpiZWZvcmUsXG4uZmktcGFpbnQtYnVja2V0OmJlZm9yZSxcbi5maS1wYXBlcmNsaXA6YmVmb3JlLFxuLmZpLXBhdXNlOmJlZm9yZSxcbi5maS1wYXc6YmVmb3JlLFxuLmZpLXBheXBhbDpiZWZvcmUsXG4uZmktcGVuY2lsOmJlZm9yZSxcbi5maS1waG90bzpiZWZvcmUsXG4uZmktcGxheS1jaXJjbGU6YmVmb3JlLFxuLmZpLXBsYXktdmlkZW86YmVmb3JlLFxuLmZpLXBsYXk6YmVmb3JlLFxuLmZpLXBsdXM6YmVmb3JlLFxuLmZpLXBvdW5kOmJlZm9yZSxcbi5maS1wb3dlcjpiZWZvcmUsXG4uZmktcHJldmlvdXM6YmVmb3JlLFxuLmZpLXByaWNlLXRhZzpiZWZvcmUsXG4uZmktcHJpY2V0YWctbXVsdGlwbGU6YmVmb3JlLFxuLmZpLXByaW50OmJlZm9yZSxcbi5maS1wcm9oaWJpdGVkOmJlZm9yZSxcbi5maS1wcm9qZWN0aW9uLXNjcmVlbjpiZWZvcmUsXG4uZmktcHV6emxlOmJlZm9yZSxcbi5maS1xdW90ZTpiZWZvcmUsXG4uZmktcmVjb3JkOmJlZm9yZSxcbi5maS1yZWZyZXNoOmJlZm9yZSxcbi5maS1yZXN1bHRzLWRlbW9ncmFwaGljczpiZWZvcmUsXG4uZmktcmVzdWx0czpiZWZvcmUsXG4uZmktcmV3aW5kLXRlbjpiZWZvcmUsXG4uZmktcmV3aW5kOmJlZm9yZSxcbi5maS1yc3M6YmVmb3JlLFxuLmZpLXNhZmV0eS1jb25lOmJlZm9yZSxcbi5maS1zYXZlOmJlZm9yZSxcbi5maS1zaGFyZTpiZWZvcmUsXG4uZmktc2hlcmlmZi1iYWRnZTpiZWZvcmUsXG4uZmktc2hpZWxkOmJlZm9yZSxcbi5maS1zaG9wcGluZy1iYWc6YmVmb3JlLFxuLmZpLXNob3BwaW5nLWNhcnQ6YmVmb3JlLFxuLmZpLXNodWZmbGU6YmVmb3JlLFxuLmZpLXNrdWxsOmJlZm9yZSxcbi5maS1zb2NpYWwtNTAwcHg6YmVmb3JlLFxuLmZpLXNvY2lhbC1hZG9iZTpiZWZvcmUsXG4uZmktc29jaWFsLWFtYXpvbjpiZWZvcmUsXG4uZmktc29jaWFsLWFuZHJvaWQ6YmVmb3JlLFxuLmZpLXNvY2lhbC1hcHBsZTpiZWZvcmUsXG4uZmktc29jaWFsLWJlaGFuY2U6YmVmb3JlLFxuLmZpLXNvY2lhbC1iaW5nOmJlZm9yZSxcbi5maS1zb2NpYWwtYmxvZ2dlcjpiZWZvcmUsXG4uZmktc29jaWFsLWRlbGljaW91czpiZWZvcmUsXG4uZmktc29jaWFsLWRlc2lnbmVyLW5ld3M6YmVmb3JlLFxuLmZpLXNvY2lhbC1kZXZpYW50LWFydDpiZWZvcmUsXG4uZmktc29jaWFsLWRpZ2c6YmVmb3JlLFxuLmZpLXNvY2lhbC1kcmliYmJsZTpiZWZvcmUsXG4uZmktc29jaWFsLWRyaXZlOmJlZm9yZSxcbi5maS1zb2NpYWwtZHJvcGJveDpiZWZvcmUsXG4uZmktc29jaWFsLWV2ZXJub3RlOmJlZm9yZSxcbi5maS1zb2NpYWwtZmFjZWJvb2s6YmVmb3JlLFxuLmZpLXNvY2lhbC1mbGlja3I6YmVmb3JlLFxuLmZpLXNvY2lhbC1mb3Jyc3Q6YmVmb3JlLFxuLmZpLXNvY2lhbC1mb3Vyc3F1YXJlOmJlZm9yZSxcbi5maS1zb2NpYWwtZ2FtZS1jZW50ZXI6YmVmb3JlLFxuLmZpLXNvY2lhbC1naXRodWI6YmVmb3JlLFxuLmZpLXNvY2lhbC1nb29nbGUtcGx1czpiZWZvcmUsXG4uZmktc29jaWFsLWhhY2tlci1uZXdzOmJlZm9yZSxcbi5maS1zb2NpYWwtaGk1OmJlZm9yZSxcbi5maS1zb2NpYWwtaW5zdGFncmFtOmJlZm9yZSxcbi5maS1zb2NpYWwtam9vbWxhOmJlZm9yZSxcbi5maS1zb2NpYWwtbGFzdGZtOmJlZm9yZSxcbi5maS1zb2NpYWwtbGlua2VkaW46YmVmb3JlLFxuLmZpLXNvY2lhbC1tZWRpdW06YmVmb3JlLFxuLmZpLXNvY2lhbC1teXNwYWNlOmJlZm9yZSxcbi5maS1zb2NpYWwtb3JrdXQ6YmVmb3JlLFxuLmZpLXNvY2lhbC1wYXRoOmJlZm9yZSxcbi5maS1zb2NpYWwtcGljYXNhOmJlZm9yZSxcbi5maS1zb2NpYWwtcGludGVyZXN0OmJlZm9yZSxcbi5maS1zb2NpYWwtcmRpbzpiZWZvcmUsXG4uZmktc29jaWFsLXJlZGRpdDpiZWZvcmUsXG4uZmktc29jaWFsLXNraWxsc2hhcmU6YmVmb3JlLFxuLmZpLXNvY2lhbC1za3lwZTpiZWZvcmUsXG4uZmktc29jaWFsLXNtYXNoaW5nLW1hZzpiZWZvcmUsXG4uZmktc29jaWFsLXNuYXBjaGF0OmJlZm9yZSxcbi5maS1zb2NpYWwtc3BvdGlmeTpiZWZvcmUsXG4uZmktc29jaWFsLXNxdWlkb286YmVmb3JlLFxuLmZpLXNvY2lhbC1zdGFjay1vdmVyZmxvdzpiZWZvcmUsXG4uZmktc29jaWFsLXN0ZWFtOmJlZm9yZSxcbi5maS1zb2NpYWwtc3R1bWJsZXVwb246YmVmb3JlLFxuLmZpLXNvY2lhbC10cmVlaG91c2U6YmVmb3JlLFxuLmZpLXNvY2lhbC10dW1ibHI6YmVmb3JlLFxuLmZpLXNvY2lhbC10d2l0dGVyOmJlZm9yZSxcbi5maS1zb2NpYWwtdmltZW86YmVmb3JlLFxuLmZpLXNvY2lhbC13aW5kb3dzOmJlZm9yZSxcbi5maS1zb2NpYWwteGJveDpiZWZvcmUsXG4uZmktc29jaWFsLXlhaG9vOmJlZm9yZSxcbi5maS1zb2NpYWwteWVscDpiZWZvcmUsXG4uZmktc29jaWFsLXlvdXR1YmU6YmVmb3JlLFxuLmZpLXNvY2lhbC16ZXJwbHk6YmVmb3JlLFxuLmZpLXNvY2lhbC16dXJiOmJlZm9yZSxcbi5maS1zb3VuZDpiZWZvcmUsXG4uZmktc3RhcjpiZWZvcmUsXG4uZmktc3RvcDpiZWZvcmUsXG4uZmktc3RyaWtldGhyb3VnaDpiZWZvcmUsXG4uZmktc3Vic2NyaXB0OmJlZm9yZSxcbi5maS1zdXBlcnNjcmlwdDpiZWZvcmUsXG4uZmktdGFibGV0LWxhbmRzY2FwZTpiZWZvcmUsXG4uZmktdGFibGV0LXBvcnRyYWl0OmJlZm9yZSxcbi5maS10YXJnZXQtdHdvOmJlZm9yZSxcbi5maS10YXJnZXQ6YmVmb3JlLFxuLmZpLXRlbGVwaG9uZS1hY2Nlc3NpYmxlOmJlZm9yZSxcbi5maS10ZWxlcGhvbmU6YmVmb3JlLFxuLmZpLXRleHQtY29sb3I6YmVmb3JlLFxuLmZpLXRodW1ibmFpbHM6YmVmb3JlLFxuLmZpLXRpY2tldDpiZWZvcmUsXG4uZmktdG9yc28tYnVzaW5lc3M6YmVmb3JlLFxuLmZpLXRvcnNvLWZlbWFsZTpiZWZvcmUsXG4uZmktdG9yc286YmVmb3JlLFxuLmZpLXRvcnNvcy1hbGwtZmVtYWxlOmJlZm9yZSxcbi5maS10b3Jzb3MtYWxsOmJlZm9yZSxcbi5maS10b3Jzb3MtZmVtYWxlLW1hbGU6YmVmb3JlLFxuLmZpLXRvcnNvcy1tYWxlLWZlbWFsZTpiZWZvcmUsXG4uZmktdG9yc29zOmJlZm9yZSxcbi5maS10cmFzaDpiZWZvcmUsXG4uZmktdHJlZXM6YmVmb3JlLFxuLmZpLXRyb3BoeTpiZWZvcmUsXG4uZmktdW5kZXJsaW5lOmJlZm9yZSxcbi5maS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZSxcbi5maS11bmxpbms6YmVmb3JlLFxuLmZpLXVubG9jazpiZWZvcmUsXG4uZmktdXBsb2FkLWNsb3VkOmJlZm9yZSxcbi5maS11cGxvYWQ6YmVmb3JlLFxuLmZpLXVzYjpiZWZvcmUsXG4uZmktdmlkZW86YmVmb3JlLFxuLmZpLXZvbHVtZS1ub25lOmJlZm9yZSxcbi5maS12b2x1bWUtc3RyaWtlOmJlZm9yZSxcbi5maS12b2x1bWU6YmVmb3JlLFxuLmZpLXdlYjpiZWZvcmUsXG4uZmktd2hlZWxjaGFpcjpiZWZvcmUsXG4uZmktd2lkZ2V0OmJlZm9yZSxcbi5maS13cmVuY2g6YmVmb3JlLFxuLmZpLXgtY2lyY2xlOmJlZm9yZSxcbi5maS14OmJlZm9yZSxcbi5maS15ZW46YmVmb3JlLFxuLmZpLXpvb20taW46YmVmb3JlLFxuLmZpLXpvb20tb3V0OmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImZvdW5kYXRpb24taWNvbnNcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG59XG5cbi5maS1hZGRyZXNzLWJvb2s6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDBcIjsgfVxuLmZpLWFsZXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTAxXCI7IH1cbi5maS1hbGlnbi1jZW50ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDJcIjsgfVxuLmZpLWFsaWduLWp1c3RpZnk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDNcIjsgfVxuLmZpLWFsaWduLWxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDRcIjsgfVxuLmZpLWFsaWduLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA1XCI7IH1cbi5maS1hbmNob3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDZcIjsgfVxuLmZpLWFubm90YXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA3XCI7IH1cbi5maS1hcmNoaXZlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA4XCI7IH1cbi5maS1hcnJvdy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA5XCI7IH1cbi5maS1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTBhXCI7IH1cbi5maS1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwYlwiOyB9XG4uZmktYXJyb3ctdXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMGNcIjsgfVxuLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwZFwiOyB9XG4uZmktYXJyb3dzLWV4cGFuZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwZVwiOyB9XG4uZmktYXJyb3dzLWluOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTBmXCI7IH1cbi5maS1hcnJvd3Mtb3V0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEwXCI7IH1cbi5maS1hc2w6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTFcIjsgfVxuLmZpLWFzdGVyaXNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEyXCI7IH1cbi5maS1hdC1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEzXCI7IH1cbi5maS1iYWNrZ3JvdW5kLWNvbG9yOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTE0XCI7IH1cbi5maS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTE1XCI7IH1cbi5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTZcIjsgfVxuLmZpLWJhdHRlcnktaGFsZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjExN1wiOyB9XG4uZmktYml0Y29pbi1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMThcIjsgfVxuLmZpLWJpdGNvaW46YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTlcIjsgfVxuLmZpLWJsaW5kOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTFhXCI7IH1cbi5maS1ibHVldG9vdGg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWJcIjsgfVxuLmZpLWJvbGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWNcIjsgfVxuLmZpLWJvb2stYm9va21hcms6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWRcIjsgfVxuLmZpLWJvb2s6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWVcIjsgfVxuLmZpLWJvb2ttYXJrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTFmXCI7IH1cbi5maS1icmFpbGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTIwXCI7IH1cbi5maS1idXJzdC1uZXc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjFcIjsgfVxuLmZpLWJ1cnN0LXNhbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjJcIjsgfVxuLmZpLWJ1cnN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTIzXCI7IH1cbi5maS1jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyNFwiOyB9XG4uZmktY2FtZXJhOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTI1XCI7IH1cbi5maS1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyNlwiOyB9XG4uZmktY2hlY2tib3g6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjdcIjsgfVxuLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyOFwiOyB9XG4uZmktY2xpcGJvYXJkLXBlbmNpbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyOVwiOyB9XG4uZmktY2xpcGJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJhXCI7IH1cbi5maS1jbG9jazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyYlwiOyB9XG4uZmktY2xvc2VkLWNhcHRpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYxMmNcIjsgfVxuLmZpLWNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJkXCI7IH1cbi5maS1jb21tZW50LW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJlXCI7IH1cbi5maS1jb21tZW50LXF1b3RlczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyZlwiOyB9XG4uZmktY29tbWVudC12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzMFwiOyB9XG4uZmktY29tbWVudDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzMVwiOyB9XG4uZmktY29tbWVudHM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzJcIjsgfVxuLmZpLWNvbXBhc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzNcIjsgfVxuLmZpLWNvbnRyYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTM0XCI7IH1cbi5maS1jcmVkaXQtY2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzNVwiOyB9XG4uZmktY3JvcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzNlwiOyB9XG4uZmktY3Jvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzdcIjsgfVxuLmZpLWNzczM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzhcIjsgfVxuLmZpLWRhdGFiYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTM5XCI7IH1cbi5maS1kaWUtZml2ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzYVwiOyB9XG4uZmktZGllLWZvdXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2JcIjsgfVxuLmZpLWRpZS1vbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2NcIjsgfVxuLmZpLWRpZS1zaXg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2RcIjsgfVxuLmZpLWRpZS10aHJlZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzZVwiOyB9XG4uZmktZGllLXR3bzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzZlwiOyB9XG4uZmktZGlzbGlrZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0MFwiOyB9XG4uZmktZG9sbGFyLWJpbGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDFcIjsgfVxuLmZpLWRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0MlwiOyB9XG4uZmktZG93bmxvYWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDNcIjsgfVxuLmZpLWVqZWN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTQ0XCI7IH1cbi5maS1lbGV2YXRvcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0NVwiOyB9XG4uZmktZXVybzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0NlwiOyB9XG4uZmktZXllOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTQ3XCI7IH1cbi5maS1mYXN0LWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDhcIjsgfVxuLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDlcIjsgfVxuLmZpLWZlbWFsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0YVwiOyB9XG4uZmktZmlsdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTRiXCI7IH1cbi5maS1maXJzdC1haWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGNcIjsgfVxuLmZpLWZsYWc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGRcIjsgfVxuLmZpLWZvbGRlci1hZGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGVcIjsgfVxuLmZpLWZvbGRlci1sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTRmXCI7IH1cbi5maS1mb2xkZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTBcIjsgfVxuLmZpLWZvb3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTFcIjsgfVxuLmZpLWZvdW5kYXRpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTJcIjsgfVxuLmZpLWdyYXBoLWJhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1M1wiOyB9XG4uZmktZ3JhcGgtaG9yaXpvbnRhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1NFwiOyB9XG4uZmktZ3JhcGgtcGllOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU1XCI7IH1cbi5maS1ncmFwaC10cmVuZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1NlwiOyB9XG4uZmktZ3VpZGUtZG9nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU3XCI7IH1cbi5maS1oZWFyaW5nLWFpZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1OFwiOyB9XG4uZmktaGVhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTlcIjsgfVxuLmZpLWhvbWU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWFcIjsgfVxuLmZpLWh0bWw1OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTViXCI7IH1cbi5maS1pbmRlbnQtbGVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1Y1wiOyB9XG4uZmktaW5kZW50LW1vcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWRcIjsgfVxuLmZpLWluZm86YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWVcIjsgfVxuLmZpLWl0YWxpYzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1ZlwiOyB9XG4uZmkta2V5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYwXCI7IH1cbi5maS1sYXB0b3A6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjFcIjsgfVxuLmZpLWxheW91dDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2MlwiOyB9XG4uZmktbGlnaHRidWxiOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYzXCI7IH1cbi5maS1saWtlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTY0XCI7IH1cbi5maS1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTY1XCI7IH1cbi5maS1saXN0LWJ1bGxldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2NlwiOyB9XG4uZmktbGlzdC1udW1iZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjdcIjsgfVxuLmZpLWxpc3QtdGh1bWJuYWlsczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2OFwiOyB9XG4uZmktbGlzdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2OVwiOyB9XG4uZmktbG9jazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2YVwiOyB9XG4uZmktbG9vcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2YlwiOyB9XG4uZmktbWFnbmlmeWluZy1nbGFzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2Y1wiOyB9XG4uZmktbWFpbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2ZFwiOyB9XG4uZmktbWFsZS1mZW1hbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNmVcIjsgfVxuLmZpLW1hbGUtc3ltYm9sOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTZmXCI7IH1cbi5maS1tYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTcwXCI7IH1cbi5maS1tYXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzFcIjsgfVxuLmZpLW1hcmtlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3MlwiOyB9XG4uZmktbWVnYXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTczXCI7IH1cbi5maS1taWNyb3Bob25lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc0XCI7IH1cbi5maS1taW51cy1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzVcIjsgfVxuLmZpLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc2XCI7IH1cbi5maS1tb2JpbGUtc2lnbmFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc3XCI7IH1cbi5maS1tb2JpbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzhcIjsgfVxuLmZpLW1vbml0b3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzlcIjsgfVxuLmZpLW1vdW50YWluczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3YVwiOyB9XG4uZmktbXVzaWM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2JcIjsgfVxuLmZpLW5leHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2NcIjsgfVxuLmZpLW5vLWRvZ3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2RcIjsgfVxuLmZpLW5vLXNtb2tpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2VcIjsgfVxuLmZpLXBhZ2UtYWRkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTdmXCI7IH1cbi5maS1wYWdlLWNvcHk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODBcIjsgfVxuLmZpLXBhZ2UtY3N2OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTgxXCI7IH1cbi5maS1wYWdlLWRlbGV0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4MlwiOyB9XG4uZmktcGFnZS1kb2M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODNcIjsgfVxuLmZpLXBhZ2UtZWRpdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4NFwiOyB9XG4uZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg1XCI7IH1cbi5maS1wYWdlLWV4cG9ydC1kb2M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODZcIjsgfVxuLmZpLXBhZ2UtZXhwb3J0LXBkZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4N1wiOyB9XG4uZmktcGFnZS1leHBvcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODhcIjsgfVxuLmZpLXBhZ2UtZmlsbGVkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg5XCI7IH1cbi5maS1wYWdlLW11bHRpcGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThhXCI7IH1cbi5maS1wYWdlLXBkZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4YlwiOyB9XG4uZmktcGFnZS1yZW1vdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOGNcIjsgfVxuLmZpLXBhZ2Utc2VhcmNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThkXCI7IH1cbi5maS1wYWdlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThlXCI7IH1cbi5maS1wYWludC1idWNrZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOGZcIjsgfVxuLmZpLXBhcGVyY2xpcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5MFwiOyB9XG4uZmktcGF1c2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTFcIjsgfVxuLmZpLXBhdzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5MlwiOyB9XG4uZmktcGF5cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTkzXCI7IH1cbi5maS1wZW5jaWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTRcIjsgfVxuLmZpLXBob3RvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTk1XCI7IH1cbi5maS1wbGF5LWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5NlwiOyB9XG4uZmktcGxheS12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5N1wiOyB9XG4uZmktcGxheTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5OFwiOyB9XG4uZmktcGx1czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5OVwiOyB9XG4uZmktcG91bmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOWFcIjsgfVxuLmZpLXBvd2VyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTliXCI7IH1cbi5maS1wcmV2aW91czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5Y1wiOyB9XG4uZmktcHJpY2UtdGFnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTlkXCI7IH1cbi5maS1wcmljZXRhZy1tdWx0aXBsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5ZVwiOyB9XG4uZmktcHJpbnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOWZcIjsgfVxuLmZpLXByb2hpYml0ZWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTBcIjsgfVxuLmZpLXByb2plY3Rpb24tc2NyZWVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWExXCI7IH1cbi5maS1wdXp6bGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTJcIjsgfVxuLmZpLXF1b3RlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWEzXCI7IH1cbi5maS1yZWNvcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTRcIjsgfVxuLmZpLXJlZnJlc2g6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTVcIjsgfVxuLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE2XCI7IH1cbi5maS1yZXN1bHRzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE3XCI7IH1cbi5maS1yZXdpbmQtdGVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE4XCI7IH1cbi5maS1yZXdpbmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTlcIjsgfVxuLmZpLXJzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFhYVwiOyB9XG4uZmktc2FmZXR5LWNvbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWJcIjsgfVxuLmZpLXNhdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWNcIjsgfVxuLmZpLXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFkXCI7IH1cbi5maS1zaGVyaWZmLWJhZGdlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFlXCI7IH1cbi5maS1zaGllbGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWZcIjsgfVxuLmZpLXNob3BwaW5nLWJhZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMFwiOyB9XG4uZmktc2hvcHBpbmctY2FydDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMVwiOyB9XG4uZmktc2h1ZmZsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMlwiOyB9XG4uZmktc2t1bGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYjNcIjsgfVxuLmZpLXNvY2lhbC01MDBweDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiNFwiOyB9XG4uZmktc29jaWFsLWFkb2JlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI1XCI7IH1cbi5maS1zb2NpYWwtYW1hem9uOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI2XCI7IH1cbi5maS1zb2NpYWwtYW5kcm9pZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiN1wiOyB9XG4uZmktc29jaWFsLWFwcGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI4XCI7IH1cbi5maS1zb2NpYWwtYmVoYW5jZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiOVwiOyB9XG4uZmktc29jaWFsLWJpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYmFcIjsgfVxuLmZpLXNvY2lhbC1ibG9nZ2VyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJiXCI7IH1cbi5maS1zb2NpYWwtZGVsaWNpb3VzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJjXCI7IH1cbi5maS1zb2NpYWwtZGVzaWduZXItbmV3czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiZFwiOyB9XG4uZmktc29jaWFsLWRldmlhbnQtYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJlXCI7IH1cbi5maS1zb2NpYWwtZGlnZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiZlwiOyB9XG4uZmktc29jaWFsLWRyaWJiYmxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWMwXCI7IH1cbi5maS1zb2NpYWwtZHJpdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzFcIjsgfVxuLmZpLXNvY2lhbC1kcm9wYm94OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWMyXCI7IH1cbi5maS1zb2NpYWwtZXZlcm5vdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzNcIjsgfVxuLmZpLXNvY2lhbC1mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjNFwiOyB9XG4uZmktc29jaWFsLWZsaWNrcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjNVwiOyB9XG4uZmktc29jaWFsLWZvcnJzdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjNlwiOyB9XG4uZmktc29jaWFsLWZvdXJzcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzdcIjsgfVxuLmZpLXNvY2lhbC1nYW1lLWNlbnRlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjOFwiOyB9XG4uZmktc29jaWFsLWdpdGh1YjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjOVwiOyB9XG4uZmktc29jaWFsLWdvb2dsZS1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWNhXCI7IH1cbi5maS1zb2NpYWwtaGFja2VyLW5ld3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2JcIjsgfVxuLmZpLXNvY2lhbC1oaTU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2NcIjsgfVxuLmZpLXNvY2lhbC1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2RcIjsgfVxuLmZpLXNvY2lhbC1qb29tbGE6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2VcIjsgfVxuLmZpLXNvY2lhbC1sYXN0Zm06YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2ZcIjsgfVxuLmZpLXNvY2lhbC1saW5rZWRpbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkMFwiOyB9XG4uZmktc29jaWFsLW1lZGl1bTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkMVwiOyB9XG4uZmktc29jaWFsLW15c3BhY2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDJcIjsgfVxuLmZpLXNvY2lhbC1vcmt1dDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkM1wiOyB9XG4uZmktc29jaWFsLXBhdGg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDRcIjsgfVxuLmZpLXNvY2lhbC1waWNhc2E6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDVcIjsgfVxuLmZpLXNvY2lhbC1waW50ZXJlc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDZcIjsgfVxuLmZpLXNvY2lhbC1yZGlvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ3XCI7IH1cbi5maS1zb2NpYWwtcmVkZGl0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ4XCI7IH1cbi5maS1zb2NpYWwtc2tpbGxzaGFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkOVwiOyB9XG4uZmktc29jaWFsLXNreXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRhXCI7IH1cbi5maS1zb2NpYWwtc21hc2hpbmctbWFnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRiXCI7IH1cbi5maS1zb2NpYWwtc25hcGNoYXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZGNcIjsgfVxuLmZpLXNvY2lhbC1zcG90aWZ5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRkXCI7IH1cbi5maS1zb2NpYWwtc3F1aWRvbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkZVwiOyB9XG4uZmktc29jaWFsLXN0YWNrLW92ZXJmbG93OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRmXCI7IH1cbi5maS1zb2NpYWwtc3RlYW06YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTBcIjsgfVxuLmZpLXNvY2lhbC1zdHVtYmxldXBvbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlMVwiOyB9XG4uZmktc29jaWFsLXRyZWVob3VzZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlMlwiOyB9XG4uZmktc29jaWFsLXR1bWJscjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlM1wiOyB9XG4uZmktc29jaWFsLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTRcIjsgfVxuLmZpLXNvY2lhbC12aW1lbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlNVwiOyB9XG4uZmktc29jaWFsLXdpbmRvd3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTZcIjsgfVxuLmZpLXNvY2lhbC14Ym94OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU3XCI7IH1cbi5maS1zb2NpYWwteWFob286YmVmb3JlIHsgY29udGVudDogXCJcXGYxZThcIjsgfVxuLmZpLXNvY2lhbC15ZWxwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU5XCI7IH1cbi5maS1zb2NpYWwteW91dHViZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlYVwiOyB9XG4uZmktc29jaWFsLXplcnBseTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlYlwiOyB9XG4uZmktc29jaWFsLXp1cmI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZWNcIjsgfVxuLmZpLXNvdW5kOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVkXCI7IH1cbi5maS1zdGFyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVlXCI7IH1cbi5maS1zdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVmXCI7IH1cbi5maS1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYwXCI7IH1cbi5maS1zdWJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjFcIjsgfVxuLmZpLXN1cGVyc2NyaXB0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYyXCI7IH1cbi5maS10YWJsZXQtbGFuZHNjYXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYzXCI7IH1cbi5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjRcIjsgfVxuLmZpLXRhcmdldC10d286YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjVcIjsgfVxuLmZpLXRhcmdldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmNlwiOyB9XG4uZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjdcIjsgfVxuLmZpLXRlbGVwaG9uZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmOFwiOyB9XG4uZmktdGV4dC1jb2xvcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmOVwiOyB9XG4uZmktdGh1bWJuYWlsczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmYVwiOyB9XG4uZmktdGlja2V0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWZiXCI7IH1cbi5maS10b3Jzby1idXNpbmVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmY1wiOyB9XG4uZmktdG9yc28tZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWZkXCI7IH1cbi5maS10b3JzbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmZVwiOyB9XG4uZmktdG9yc29zLWFsbC1mZW1hbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZmZcIjsgfVxuLmZpLXRvcnNvcy1hbGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDBcIjsgfVxuLmZpLXRvcnNvcy1mZW1hbGUtbWFsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwMVwiOyB9XG4uZmktdG9yc29zLW1hbGUtZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjAyXCI7IH1cbi5maS10b3Jzb3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDNcIjsgfVxuLmZpLXRyYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjA0XCI7IH1cbi5maS10cmVlczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwNVwiOyB9XG4uZmktdHJvcGh5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjA2XCI7IH1cbi5maS11bmRlcmxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDdcIjsgfVxuLmZpLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDhcIjsgfVxuLmZpLXVubGluazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwOVwiOyB9XG4uZmktdW5sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBhXCI7IH1cbi5maS11cGxvYWQtY2xvdWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGJcIjsgfVxuLmZpLXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwY1wiOyB9XG4uZmktdXNiOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBkXCI7IH1cbi5maS12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwZVwiOyB9XG4uZmktdm9sdW1lLW5vbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGZcIjsgfVxuLmZpLXZvbHVtZS1zdHJpa2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTBcIjsgfVxuLmZpLXZvbHVtZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxMVwiOyB9XG4uZmktd2ViOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjEyXCI7IH1cbi5maS13aGVlbGNoYWlyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjEzXCI7IH1cbi5maS13aWRnZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTRcIjsgfVxuLmZpLXdyZW5jaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxNVwiOyB9XG4uZmkteC1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTZcIjsgfVxuLmZpLXg6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTdcIjsgfVxuLmZpLXllbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxOFwiOyB9XG4uZmktem9vbS1pbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxOVwiOyB9XG4uZmktem9vbS1vdXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMWFcIjsgfVxuIiwiLypcclxuICBUSVRMRSBCQVJcclxuICAtLS0tLS0tLS1cclxuXHJcbiAgQSBuYXZpZ2F0aW9uYWwgY29tcG9uZW50IHdoaWNoIGNhbiBkaXNwbGF5IHRoZSBjdXJyZW50IHNjcmVlbiB0aGUgdXNlciBpcyBvbiwgYWxvbmcgd2l0aCBhZGRpdGlvbmFsIGNvbnRyb2xzIG9yIG1lbnUgaXRlbXMuXHJcblxyXG4gIFRoZSB0aXRsZSBiYXIgaW5jbHVkZXMgY2xhc3NlcyB0byBjcmVhdGUgY2VudGVyLCBsZWZ0LCBhbmQgcmlnaHQgc2VjdGlvbnMsIHdoaWNoIGNhbiBiZSB1c2VkIGluIGFueSBjb21iaW5hdGlvbi4gSG93ZXZlciwgaW4gdGhlIG1hcmt1cCwgdGhlIHNlY3Rpb25zIG11c3QgY29tZSBpbiB0aGlzIG9yZGVyOlxyXG4gICAtIENlbnRlclxyXG4gICAtIExlZnRcclxuICAgLSBSaWdodFxyXG4qL1xyXG5cclxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXHJcbi8vIFRpdGxlIEJhclxyXG4kdGl0bGViYXItY2VudGVyLXdpZHRoOiA1MCUgIWRlZmF1bHQ7XHJcbiR0aXRsZWJhci1zaWRlLXdpZHRoOiAoMTAwJSAtICR0aXRsZWJhci1jZW50ZXItd2lkdGgpIC8gMiAhZGVmYXVsdDtcclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICNlZWUgIWRlZmF1bHQ7XHJcbiR0aXRsZWJhci1jb2xvcjogIzAwMCAhZGVmYXVsdDtcclxuJHRpdGxlYmFyLWJvcmRlcjogMXB4IHNvbGlkICNjY2MgIWRlZmF1bHQ7XHJcbiR0aXRsZWJhci1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcbiR0aXRsZWJhci1pdGVtLWNsYXNzZXM6IChcclxuICBjZW50ZXI6ICdjZW50ZXInLFxyXG4gIGxlZnQ6ICdsZWZ0JyxcclxuICByaWdodDogJ3JpZ2h0JyxcclxuICB0aXRsZTogJ3RpdGxlJyxcclxuKSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4ldGl0bGUtYmFyIHtcclxuICAkY2VudGVyOiBtYXAtZ2V0KCR0aXRsZWJhci1pdGVtLWNsYXNzZXMsIGNlbnRlcik7XHJcbiAgJGxlZnQ6IG1hcC1nZXQoJHRpdGxlYmFyLWl0ZW0tY2xhc3NlcywgbGVmdCk7XHJcbiAgJHJpZ2h0OiBtYXAtZ2V0KCR0aXRsZWJhci1pdGVtLWNsYXNzZXMsIHJpZ2h0KTtcclxuICAkdGl0bGU6IG1hcC1nZXQoJHRpdGxlYmFyLWl0ZW0tY2xhc3NlcywgdGl0bGUpO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG5cclxuICAvLyBEZW5vdGVzIHRoZSB0aXRsZSBvZiB0aGUgYmFyXHJcbiAgLiN7JHRpdGxlfSB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gIC8vIERlbm90ZXMgbGVmdCwgcmlnaHQsIGFuZCBjZW50ZXIgc2VjdGlvbnMgb2YgdGhlIGJhclxyXG4gIC4jeyRsZWZ0fSwgLiN7JGNlbnRlcn0sIC4jeyRyaWdodH0ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcblxyXG4gICAgLy8gSWYgb25seSBvbmUgc2VjdGlvbiBpcyBpbiB1c2UsIHN0cmV0Y2ggaXQgYWxsIHRoZSB3YXkgb3V0XHJcbiAgICAmOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBMZWZ0IGFsd2F5cyBjb21lcyBmaXJzdCwgdGhlbiBjZW50ZXIsIHRoZW4gcmlnaHRcclxuICAvLyBUaGUgbGVmdCBhbmQgcmlnaHQgc2VjdGlvbnMgaGF2ZSB0aGUgc2FtZSB3aWR0aFxyXG4gIC4jeyRsZWZ0fSB7XHJcbiAgICBvcmRlcjogMTtcclxuICAgIGZsZXg6IDAgMCAkdGl0bGViYXItc2lkZS13aWR0aDtcclxuICB9XHJcbiAgLiN7JGNlbnRlcn0ge1xyXG4gICAgb3JkZXI6IDI7XHJcbiAgICBmbGV4OiAwIDAgJHRpdGxlYmFyLWNlbnRlci13aWR0aDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbiAgLiN7JHJpZ2h0fSB7XHJcbiAgICBvcmRlcjogMztcclxuICAgIGZsZXg6IDAgMCAkdGl0bGViYXItc2lkZS13aWR0aDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgb25seSBsZWZ0IGFuZCByaWdodCBhcmUgaW4gdXNlLCBzdHJldGNoIHRoZW0gYm90aCBvdXQgZXF1YWxseVxyXG4gIC4jeyRsZWZ0fTpmaXJzdC1jaGlsZCB7XHJcbiAgICBmbGV4OiAxIDEgYXV0bztcclxuICB9XHJcbiAgLiN7JGxlZnR9OmZpcnN0LWNoaWxkICsgLiN7JHJpZ2h0fTpsYXN0LWNoaWxkIHtcclxuICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgb25seSBjZW50ZXIgYW5kIHJpZ2h0IGFyZSBpbiB1c2UsIHNoaWZ0IHRoZSBjZW50ZXIgc2VjdGlvbiBpbnRvIHRoZSByaWdodCBwb3NpdGlvblxyXG4gIC4jeyRjZW50ZXJ9OmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgbWFyZ2luLWxlZnQ6ICR0aXRsZWJhci1zaWRlLXdpZHRoO1xyXG4gIH1cclxuICAvLyBJZiBvbmx5IGNlbnRlciBhbmQgbGVmdCBhcmUgaW4gdXNlLCBvdmVycmlkZSB0aGUgYWJvdmUgc3R5bGVcclxuICAuI3skY2VudGVyfSArIC4jeyRsZWZ0fSB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0oJHRpdGxlYmFyLXNpZGUtd2lkdGgpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRpdGxlLWJhci1zdHlsZShcclxuICAkYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQsXHJcbiAgJGNvbG9yOiAkdGl0bGViYXItY29sb3IsXHJcbiAgJGJvcmRlcjogJHRpdGxlYmFyLWJvcmRlcixcclxuICAkcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmdcclxuKSB7XHJcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xyXG59XHJcblxyXG5AbWl4aW4gdGl0bGUtYmFyKFxyXG4gICRiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZCxcclxuICAkY29sb3I6ICR0aXRsZWJhci1jb2xvcixcclxuICAkYm9yZGVyOiAkdGl0bGViYXItYm9yZGVyLFxyXG4gICRwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZ1xyXG4pIHtcclxuICBAZXh0ZW5kICV0aXRsZS1iYXI7XHJcbiAgQGluY2x1ZGUgdGl0bGUtYmFyLXN0eWxlKCRiYWNrZ3JvdW5kLCAkY29sb3IsICRib3JkZXIsICRwYWRkaW5nKTtcclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyh0aXRsZS1iYXIpIHtcclxuICAudGl0bGUtYmFyIHtcclxuICAgIEBpbmNsdWRlIHRpdGxlLWJhcjtcclxuXHJcbiAgICAmLnByaW1hcnkge1xyXG4gICAgICBAaW5jbHVkZSB0aXRsZS1iYXItc3R5bGUoJHByaW1hcnktY29sb3IsIGlzaXRsaWdodCgkcHJpbWFyeS1jb2xvcikpO1xyXG4gICAgICBhLCBhOmhvdmVyIHsgY29sb3I6IGlzaXRsaWdodCgkcHJpbWFyeS1jb2xvcik7IH1cclxuICAgICAgQGlmIHVzaW5nKGljb25pYykgeyAuaWNvbmljIHsgQGluY2x1ZGUgY29sb3ItaWNvbihpc2l0bGlnaHQoJHByaW1hcnktY29sb3IpKTsgfSB9XHJcbiAgICB9XHJcbiAgICAmLmRhcmsge1xyXG4gICAgICBAaW5jbHVkZSB0aXRsZS1iYXItc3R5bGUoJGRhcmstY29sb3IsICNmZmYpO1xyXG4gICAgICBhLCBhOmhvdmVyIHsgY29sb3I6ICNmZmY7IH1cclxuICAgICAgQGlmIHVzaW5nKGljb25pYykgeyAuaWNvbmljIHsgQGluY2x1ZGUgY29sb3ItaWNvbigjZmZmKTsgfSB9XHJcbiAgICB9XHJcbiAgfVxyXG4gICAgLnRpdGxlLWJhci1ib3R0b20ge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICBib3JkZXItdG9wOiAkdGl0bGViYXItYm9yZGVyO1xyXG4gICAgfVxyXG59XHJcbiIsIi8vIElDT05JQ1xyXG4vLyAtLS0tLS1cclxuLy9cclxuLy8gQSBzYW1wbGUgb2YgMjQgZmxleGlibGUsIGVhc2lseSBzY2hlbWFibGUgaWNvbnMgZnJvbSB0aGUgZm9sa3MgYXQgSWNvbmljLlxyXG4vLyBcclxuLy8gRmVhdHVyZXM6XHJcbi8vICAtIDI0IGljb25zXHJcbi8vICAtIEJ1aWx0LWluIGNvbG9yaW5nIGFuZCBzaXppbmcgY2xhc3Nlc1xyXG4vLyAgLSBDb2xvcmluZyBtaXhpblxyXG4vLyAgLSBBbmd1bGFyIHN1cHBvcnRcclxuXHJcbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xyXG4vLyBJY29uaWNcclxuJGljb25pYy1wcmltYXJ5LWZpbGw6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG4kaWNvbmljLXByaW1hcnktc3Ryb2tlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuJGljb25pYy1hY2NlbnQtZmlsbDogJGljb25pYy1wcmltYXJ5LWZpbGwgIWRlZmF1bHQ7XHJcbiRpY29uaWMtYWNjZW50LXN0cm9rZTogJGljb25pYy1hY2NlbnQtZmlsbCAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4vLyBDb2xvcnMgdGhlIGZpbGwsIGFuZCBvcHRpb25hbGx5IHN0cm9rZSwgYWNjZW50IGZpbGwsIGFuZCBhY2NlbnQgc3Ryb2tlIG9mIGFuIEljb25pYyBpY29uLlxyXG5AbWl4aW4gY29sb3ItaWNvbihcclxuICAkZmlsbCxcclxuICAkc3Ryb2tlOiBudWxsLFxyXG4gICRmaWxsQWNjZW50OiBudWxsLFxyXG4gICRzdHJva2VBY2NlbnQ6IG51bGxcclxuKSB7XHJcbiAgKiB7XHJcbiAgICBmaWxsOiAkZmlsbDtcclxuXHJcbiAgICAvLyBVc2UgdGhlIGZpbGwgY29sb3IgaWYgbm8gc3Ryb2tlIGlzIHByb3ZpZGVkXHJcbiAgICBAaWYgaGFzdmFsdWUoJHN0cm9rZSkge1xyXG4gICAgICBzdHJva2U6ICRzdHJva2U7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIHN0cm9rZTogJGZpbGw7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pY29uaWMtcHJvcGVydHktYWNjZW50IHtcclxuICAgICAgLy8gVXNlIHRoZSBmaWxsIGNvbG9yIGlmIG5vIGFjY2VudCBpcyBwcm92aWRlZFxyXG4gICAgICBAaWYgaGFzdmFsdWUoJGZpbGxBY2NlbnQpIHtcclxuICAgICAgICBmaWxsOiAkZmlsbEFjY2VudDtcclxuICAgICAgfVxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgZmlsbDogJGZpbGw7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFVzZSB0aGUgbm9ybWFsIHN0cm9rZSBjb2xvciBpZiBubyBhY2NlbnQgaXMgcHJvdmlkZWRcclxuICAgICAgQGlmIGhhc3ZhbHVlKCRzdHJva2VBY2NlbnQpIHtcclxuICAgICAgICBzdHJva2U6ICRzdHJva2VBY2NlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIC8vIC4uLm9yIHVzZSB0aGUgZmlsbCBpZiBubyBub3JtYWwgc3Ryb2tlIGlzIHByb3ZpZGVkXHJcbiAgICAgICAgQGlmIGhhc3ZhbHVlKCRzdHJva2UpIHtcclxuICAgICAgICAgIHN0cm9rZTogJHN0cm9rZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgc3Ryb2tlOiAkZmlsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoaWNvbmljKSB7XHJcbiAgLmljb25pYyB7XHJcbiAgICB3aWR0aDogMXJlbTtcclxuICAgIGhlaWdodDogMXJlbTtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblxyXG4gICAgYSA+ICYge1xyXG4gICAgICBAaW5jbHVkZSBjb2xvci1pY29uKCRwcmltYXJ5LWNvbG9yKTtcclxuICAgICAgbWFyZ2luLXRvcDogLTJweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmljb25pYyAqIHtcclxuICAgIGZpbGw6ICRpY29uaWMtcHJpbWFyeS1maWxsO1xyXG4gICAgc3Ryb2tlOiAkaWNvbmljLXByaW1hcnktc3Ryb2tlO1xyXG5cclxuICAgICYuaWNvbmljLXByb3BlcnR5LWFjY2VudCB7XHJcbiAgICAgIGZpbGw6ICRpY29uaWMtYWNjZW50LWZpbGw7XHJcbiAgICAgIHN0cm9rZTogJGljb25pYy1hY2NlbnQtc3Ryb2tlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVhY2ggJGNvbG9yIGluIG1hcC1rZXlzKCRmb3VuZGF0aW9uLWNvbG9ycykge1xyXG4gICAgLmljb25pYy1jb2xvci0jeyRjb2xvcn0ge1xyXG4gICAgICBAaW5jbHVkZSBjb2xvci1pY29uKG1hcC1nZXQoJGZvdW5kYXRpb24tY29sb3JzLCAkY29sb3IpKTtcclxuICAgIH1cclxuICB9XHJcbiAgLmljb25pYy1jb2xvci1zZWNvbmRhcnkge1xyXG4gICAgQGluY2x1ZGUgY29sb3ItaWNvbigkc2Vjb25kYXJ5LWNvbG9yKTtcclxuICB9XHJcbn1cclxuIiwiLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXHJcbi8vIEJ1dHRvblxyXG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XHJcbiRidXR0b24tbWFyZ2luOiAwICRnbG9iYWwtcGFkZGluZyAkZ2xvYmFsLXBhZGRpbmcgMCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zdHlsZTogc29saWQgIWRlZmF1bHQ7XHJcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1jb2xvcjogYXV0byAhZGVmYXVsdDtcclxuJGJ1dHRvbi1yYWRpdXM6IDAgIWRlZmF1bHQ7XHJcbiRidXR0b24tc2l6ZXM6IChcclxuICB0aW55OiAwLjcsXHJcbiAgc21hbGw6IDAuOCxcclxuICBtZWRpdW06IDEsXHJcbiAgbGFyZ2U6IDEuMyxcclxuKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1mb250LXNpemU6IDAuOXJlbSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjUgIWRlZmF1bHQ7XHJcbiRidXR0b24tdGFnLXNlbGVjdG9yOiBmYWxzZSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4lYnV0dG9uIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yNXMgZWFzZS1vdXQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xyXG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XHJcbiAgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtc2l6ZTtcclxuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcclxuXHJcbiAgLy8gRHJvcGRvd24gYXJyb3dcclxuICAvLyBUT0RPOiBDaGFuZ2UgdG8gY2xhc3MgYW5kIG1peGluIGJlY2F1c2Ugbm93IHRoZSB0b2dnbGUgaXMgJ2ZhLW9wZW4nIHdoaWNoIGlzIHRvbyBnZW5lcmljXHJcbiAgLy8gJltkYXRhLXBvcHVwLXRvZ2dsZV0ge1xyXG4gIC8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIC8vICAgcGFkZGluZy1yaWdodDogMmVtOyAvLyBQbGFjZWhvbGRlclxyXG5cclxuICAvLyAgICY6OmFmdGVyIHtcclxuICAvLyAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgYmxhY2ssIHRvcCk7XHJcbiAgLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAvLyAgICAgcmlnaHQ6IDAuN2VtO1xyXG4gIC8vICAgICB0b3A6IDUwJTtcclxuICAvLyAgICAgbWFyZ2luLXRvcDogLTNweDtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tc2l6ZSgkc2l6ZTogbWVkaXVtLCAkZXhwYW5kOiBmYWxzZSkge1xyXG4gICRzaXplOiAkYnV0dG9uLWZvbnQtc2l6ZSAqIG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgJHNpemUpO1xyXG4gIGZvbnQtc2l6ZTogJHNpemU7XHJcblxyXG4gIEBpZiAkZXhwYW5kIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XHJcbiAgfVxyXG5cclxuICBAaWYgdXNpbmcoaWNvbmljKSB7XHJcbiAgICAuaWNvbmljIHtcclxuICAgICAgd2lkdGg6IDFlbTtcclxuICAgICAgaGVpZ2h0OiAxZW07XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNWVtO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMnB4OyAvLyBUaGUgaWNvbnMgYXJlIG9kZGx5IG1pc2FsaWduZWRcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcclxuICBAaWYgJGV4cGFuZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tc3R5bGUoXHJcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcclxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxyXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcclxuICAkc3R5bGU6ICRidXR0b24tc3R5bGUsXHJcbiAgJHJhZGl1czogJGJ1dHRvbi1yYWRpdXMsXHJcbiAgJGJ0bmdyb3VwOiBmYWxzZVxyXG4pe1xyXG4gIEBpZiAkc3R5bGUgPT0gaG9sbG93IHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogJGJhY2tncm91bmQ7XHJcblxyXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6IDI1JSk7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6IDI1JSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIFNvbGlkIGlzIHRoZSBkZWZhdWx0XHJcbiAgQGVsc2Uge1xyXG4gICAgQGlmICRjb2xvciA9PSBhdXRvIHtcclxuICAgICAgJGNvbG9yOiBpc2l0bGlnaHQoJGJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuXHJcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuICAgICAgfVxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XHJcbiAgICAgIH1cclxuICAgICAgY29sb3I6ICRjb2xvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkYnRuZ3JvdXAge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICBib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMjUlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiB1c2luZyhpY29uaWMpIHtcclxuICAgIEBpZiAkc3R5bGUgPT0gaG9sbG93IHtcclxuICAgICAgLmljb25pYyB7XHJcbiAgICAgICAgQGluY2x1ZGUgY29sb3ItaWNvbigkYmFja2dyb3VuZCk7XHJcbiAgICAgIH1cclxuICAgICAgJjpob3ZlciAuaWNvbmljIHtcclxuICAgICAgICBAaW5jbHVkZSBjb2xvci1pY29uKHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAyNSUpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAuaWNvbmljIHtcclxuICAgICAgICBAaW5jbHVkZSBjb2xvci1pY29uKCRjb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoKSB7XHJcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuQG1peGluIGJ1dHRvbihcclxuICAkc2l6ZTogbWVkaXVtLFxyXG4gICRleHBhbmQ6IGZhbHNlLFxyXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXHJcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcclxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXHJcbiAgJHN0eWxlOiAkYnV0dG9uLXN0eWxlLFxyXG4gICRyYWRpdXM6ICRidXR0b24tcmFkaXVzXHJcbikge1xyXG4gIEBleHRlbmQgJWJ1dHRvbjtcclxuICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkc2l6ZSk7XHJcbiAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZCgkZXhwYW5kKTtcclxuICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IsICRzdHlsZSk7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoYnV0dG9uKSB7XHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBidXR0b247XHJcblxyXG4gICAgJi50aW55ICAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSh0aW55KTsgfVxyXG4gICAgJi5zbWFsbCAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZShzbWFsbCk7IH1cclxuICAgICYubGFyZ2UgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUobGFyZ2UpOyB9XHJcbiAgICAmLmV4cGFuZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cclxuXHJcbiAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yLCBhdXRvKSB9XHJcbiAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkc3VjY2Vzcy1jb2xvciwgYXV0bykgfVxyXG4gICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJHdhcm5pbmctY29sb3IsIGF1dG8pIH1cclxuICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRhbGVydC1jb2xvciwgYXV0bykgfVxyXG4gICAgJi5pbmZvICAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGluZm8tY29sb3IsIGF1dG8pIH1cclxuICAgICYuZGFyayAgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRkYXJrLWNvbG9yLCBhdXRvKSB9XHJcblxyXG4gICAgQGlmICRidXR0b24tc3R5bGUgIT0gaG9sbG93IHtcclxuICAgICAgJi5ob2xsb3cgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJHN0eWxlOiBob2xsb3cpO1xyXG4gICAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRzZWNvbmRhcnktY29sb3IsICRzdHlsZTogaG9sbG93KTsgfVxyXG4gICAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRzdWNjZXNzLWNvbG9yLCAkc3R5bGU6IGhvbGxvdyk7IH1cclxuICAgICAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkd2FybmluZy1jb2xvciwgJHN0eWxlOiBob2xsb3cpOyB9XHJcbiAgICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGFsZXJ0LWNvbG9yLCAkc3R5bGU6IGhvbGxvdyk7IH1cclxuICAgICAgICAmLmluZm8gICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkaW5mby1jb2xvciwgJHN0eWxlOiBob2xsb3cpOyB9XHJcbiAgICAgICAgJi5kYXJrICAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGRhcmstY29sb3IsICRzdHlsZTogaG9sbG93KTsgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5kaXNhYmxlZCB7IEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDsgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRidXR0b24tdGFnLXNlbGVjdG9yIHtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIEBleHRlbmQgLmJ1dHRvbjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgQXBwc1xuLy9cbi8vIEJSRUFLUE9JTlRTXG4vLyAtLS0tLS0tLS0tLVxuLy8gRm91bmRhdGlvbiBmb3IgQXBwcyBoYXMgdGhyZWUgY29yZSBicmVha3BvaW50czogc21hbGwgKD4gMCksIG1lZGl1bSAoPj0gNjQwKSwgYW5kIGxhcmdlICg+PSAxMDI0KS5cbi8vIFRoZXJlIGFyZSB0d28gYWRkaXRpb25hbCBicmVha3BvaW50cywgeGxhcmdlLCBhbmQgeHhsYXJnZSwgd2hpY2ggKGJ5IGRlZmF1bHQpIGRvIG5vdCBvdXRwdXQgYXMgc2l6aW5nIGNsYXNzZXMuXG4vLyBBY2Nlc3MgbmFtZWQgYnJlYWtwb2ludHMgdXNpbmcgdGhlIG1peGluIGJyZWFrcG9pbnQoJHNpemUpLCB3aGVyZSAkc2l6ZSBpcyBhIGJyZWFrcG9pbnQgdmFsdWUuXG4vLyBZb3UgY2FuIGFsc28gcGFzcyBhbiBlbSwgcmVtLCBvciBwaXhlbCB2YWx1ZSBpbnRvIHRoaXMgbWl4aW4gdG8gZ2VuZXJhdGUgYW4gZW0tYmFzZWQgbWVkaWEgcXVlcnkuXG4vLyBDcmVhdGUgbmV3IG5hbWVkIGJyZWFrcG9pbnRzIHVzaW5nIHRoZSAkYnJlYWtwb2ludHMgbWFwLiBDaGFuZ2Ugd2hpY2ggbmFtZWQgYnJlYWtwb2ludHMgZ2V0IHRoZWlyIG93biBjbGFzc2VzIGJ5IG1vZGlmeWluZyB0aGUgJGJyZWFrcG9pbnQtY2xhc3NlcyBtYXAuXG4vLyBOT1RFOiBJZiB5b3UgY2hhbmdlIHRoZSAkYnJlYWtwb2ludHMgbWFwLCBrbm93IHRoYXQgYWxsIHZhbHVlcyBtdXN0IGJlIG9yZGVyZWQgYnkgd2lkdGgsIHNtYWxsZXN0IHdpZHRoIGZpcnN0LiBTbyAwIGlzIGFsd2F5cyB5b3VyIGZpcnN0IHZhbHVlLlxuXG4vLyAxLiBWYXJpYWJsZXNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gQnJlYWtwb2ludHNcbi8vIFRoZXNlIGFyZSBvdXIgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZW0gaW4gb3VyIGJyZWFrcG9pbnQgZnVuY3Rpb24gbGlrZSB0aGlzOiBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkgeyAvLyBNZWRpdW0gYW5kIGxhcmdlciBzdHlsZXMgfVxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiByZW0tY2FsYygwKSxcbiAgbWVkaXVtOiByZW0tY2FsYyg2NDApLFxuICBsYXJnZTogcmVtLWNhbGMoMTIwMCksXG4gIHhsYXJnZTogcmVtLWNhbGMoMTQ0MCksXG4gIHh4bGFyZ2U6IHJlbS1jYWxjKDE5MjApLFxuKSAhZGVmYXVsdDtcblxuLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBzbWFsbC0xMiwgbWVkaXVtLTYsIGFuZCBzbyBvbi5cbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuLy8vXG5cbi8vIDIuIE1peGluc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nICRyZW0tYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge21peGVkfSAkdmFsIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L2VtL3JlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsOiBzbWFsbCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnBNYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJ29ubHkgc2NyZWVuJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgICRzdHI6ICRzdHIgKyAnIGFuZCAob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgICAgICRuZXh0LWJwOiBtYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAgICAgQGlmICRuZXh0LWJwID09IG51bGwge1xuICAgICAgICAgICAgJGJwTWF4OiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAkYnBNYXg6ICRuZXh0LWJwIC0gKDEvMTYpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgICAkbmFtZWQ6IHRydWU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRicDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICAgIEBpZiB1bml0KCRicCkgPT0gJ3B4JyBvciB1bml0KCRicCkgPT0gJycge1xuICAgICAgJGJwOiByZW0tY2FsYygkYnApO1xuICAgIH1cbiAgICAvLyBGaW5hbGx5LCB0aGUgcmVtIHZhbHVlIGlzIHR1cm5lZCBpbnRvIGFuIGVtIHZhbHVlXG4gICAgJGJwOiBzdHJpcC11bml0KCRicCkgKiAxZW07XG5cbiAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIHRoZSBpbnB1dCBpcyBcIjAgdXBcIiBvciBcIjAgZG93blwiXG4gICAgQGlmICRicCA+IDAgb3IgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gQW5kIGxvLCBhIG1lZGlhIHF1ZXJ5IHdhcyBib3JuXG4gICAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICAgICAgICBAaWYgJGJwTWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kIChtYXgtd2lkdGg6ICN7JGJwTWF4fSknO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgQGRlYnVnICdFUlJPUjogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlLic7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJG1heDogJGJwIC0gKDEvMTYpO1xuICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gT3V0cHV0XG4gIEBpZiAkYnAgPT0gMGVtIGFuZCAkZGlyICE9ICdvbmx5JyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBtZWRpYSAjeyRzdHJ9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUHJlZml4ZXMgc2VsZWN0b3IgJGNsYXNzIHdpdGggYnJlYWtwb2ludCBrZXl3b3JkcywgYWxsb3dpbmcgeW91IHRvIGNyZWF0ZSBhIGJhdGNoIG9mIGJyZWFrcG9pbnQgY2xhc3NlcyB3aXRoIG9uZSBjaHVuayBvZiBjb2RlLiBJZiB5b3Ugd2FudCB0byBza2lwIGEgYnJlYWtwb2ludCAobGlrZSBzbWFsbCwgYmVjYXVzZSBtb2JpbGUgZmlyc3QgYW5kIGFsbCB0aGF0KSwgYWRkIHZhbHVlcyB0byB0aGUgJG9taXQgcGFyYW1ldGVyLlxuLy8vXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRjbGFzcyAtIENsYXNzIHRvIHByZWZpeCB3aXRoIHRoZSBicmVha3BvaW50IG5hbWUgYW5kIGEgaHlwaGVuLlxuLy8vIEBwYXJhbSB7bGlzdH0gJG9taXQgLSBOYW1lZCBicmVha3BvaW50cyB0byBza2lwLiBObyBjbGFzcyB3aWxsIGJlIGFkZGVkIHdpdGggYnJlYWtwb2ludHMgaW4gdGhpcyBsaXN0LlxuQG1peGluIGVhY2gtYnJlYWtwb2ludCgkY2xhc3MsICRvbWl0OiAoKSkge1xuICAvLyBJdGVyYXRlIHRocm91Z2ggYnJlYWtwb2ludCBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIC8vIE9ubHkgZG8gc29tZXRoaW5nIGlmIHRoZSBicmVha3BvaW50IGlzIG5vdCBpbiAkb21pdFxuICAgIEBpZiBpbmRleCgkb21pdCwgJHNpemUpID09IG51bGwge1xuICAgICAgJHZhbDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgICAgIC8vIFByZWZpeCAkY2xhc3Mgd2l0aCAkc2l6ZSBhbmQgYSBoeXBoZW5cbiAgICAgIC4jeyRzaXplICsgJy0nICsgJGNsYXNzfSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyAzLiBDU1MgT3V0cHV0XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyBNZXRhIHN0eWxlcyBhcmUgaW5jbHVkZWQgaW4gYWxsIGJ1aWxkcywgYXMgdGhleSBhcmUgYSBkZXBlbmRhbmN5IG9mIHRoZSBKYXZhc2NyaXB0LlxuLy8gVXNlZCB0byBwcm92aWRlIG1lZGlhIHF1ZXJ5IHZhbHVlcyBmb3IgamF2YXNjcmlwdCBjb21wb25lbnRzLlxuLy8gRm9yd2FyZCBzbGFzaCBwbGFjZWQgYXJvdW5kIGV2ZXJ5dGhpbmcgdG8gY29udmluY2UgUGhhbnRvbUpTIHRvIHJlYWQgdGhlIHZhbHVlLlxuXG5tZXRhLmZvdW5kYXRpb24tdmVyc2lvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIiN7JGZvdW5kYXRpb24tdmVyc2lvbn1cIjtcbn1cbm1ldGEuZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcIiN7bWFwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfVwiO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgQXBwcyBBTFBIQVxyXG4vLyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4kaW5jbHVkZS1jc3M6ICgpICFkZWZhdWx0O1xyXG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XHJcbiRyZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBtb2R1bGUgaXMgaW4gdXNlLlxyXG5AZnVuY3Rpb24gdXNpbmcoJG5hbWUpIHtcclxuICAvLyBJbXBvcnQgZnJvbSBnbG9iYWwgc2NvcGVcclxuICAkaW5jbHVkZS1jc3M6ICRpbmNsdWRlLWNzcyAhZ2xvYmFsO1xyXG4gICRtb2R1bGUta2V5OiBtYXAtZ2V0KCRpbmNsdWRlLWNzcywgJG5hbWUpO1xyXG5cclxuICBAaWYgJG1vZHVsZS1rZXkgPT0gdHJ1ZSBvciAkbW9kdWxlLWtleSA9PSBudWxsIHtcclxuICAgIEByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBDaGVja3MgaWYgYSBtb2R1bGUncyBDU1MgaGFzIGFscmVhZHkgYmVlbiBleHBvcnRlZC5cclxuQGZ1bmN0aW9uIGltcG9ydGVkKCRuYW1lKSB7XHJcbiAgLy8gSW1wb3J0IGZyb20gZ2xvYmFsIHNjb3BlXHJcbiAgJG1vZHVsZXM6ICRtb2R1bGVzICFnbG9iYWw7XHJcbiAgLy8gQ2hlY2sgaWYgdGhlIG1vZHVsZSBpcyBhbHJlYWR5IG9uIHRoZSBpbXBvcnRlZCBsaXN0XHJcbiAgQGlmIHR5cGUtb2YoaW5kZXgoJG1vZHVsZXMsICRuYW1lKSkgPT0gJ251bWJlcicge1xyXG4gICAgQHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIE91dHB1dHMgdGhlIGNodW5rIG9mIGNvbnRlbnQgcGFzc2VkIGlmIGNvbXBvbmVudCAkbmFtZSBoYXNuJ3QgeWV0IGJlZW4gb3V0cHV0LlxyXG4vLy8gVGhpcyBwcmV2ZW50cyBjb2RlIGR1cGxpY2F0aW9uIGJ5IGtlZXBpbmcgdHJhY2sgb2Ygd2hpY2ggY29tcG9uZW50cyBoYXZlIGFscmVhZHkgYmVlbiBvdXRwdXQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiBjb21wb25lbnQgdG8gb3V0cHV0XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBUaGUgY29udGVudCBwYXNzZWQsIGlmIHRoZSBjb21wb25lbnQgaGFzIG5vdCB5ZXQgYmVlbiBleHBvcnRlZC5cclxuQG1peGluIGV4cG9ydHMoJG5hbWUpIHtcclxuICAvLyBDaGVjayBpZiB0aGUgbW9kdWxlIGhhcyBhbHJlYWR5IGJlZW4gaW1wb3J0ZWRcclxuICBAaWYgbm90KGltcG9ydGVkKCRuYW1lKSkge1xyXG4gICAgLy8gQ2hlY2sgaWYgdGhlIG1vZHVsZSBzaG91bGQgYmUgdXNlZFxyXG4gICAgQGlmIHVzaW5nKCRuYW1lKSB7XHJcbiAgICAgICRtb2R1bGVzOiBhcHBlbmQoJG1vZHVsZXMsICRuYW1lKSAhZ2xvYmFsO1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBNYXAgU2VyaWFsaXplXHJcbi8vLyBDb252ZXJ0cyBhIFNhc3MgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGVuY29kZSB0aGUgbWVkaWEgcXVlcmllcyBpbiB0aGUgYCRicmVha3BvaW50c2AgdmFyaWFibGUsIHNvIGl0IGNhbiBiZSB0cmFuc2ZlcnJlZCB0byBvdXIgSmF2YVNjcmlwdCBmb3IgdXNlIHRoZXJlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7bWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXHJcbi8vL1xyXG4vLy8gQHJldHVybiBBIHN0cmluZyB3aXRoIGEgbWFwIGNvbnZlcnRlZCB0byBhIHN0cmluZy5cclxuQGZ1bmN0aW9uIG1hcC1zZXJpYWxpemUoJG1hcCkge1xyXG4gICRzdHI6ICcnO1xyXG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcclxuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgJHZhbHVlICsgJyYnO1xyXG4gIH1cclxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xyXG5cclxuICBAcmV0dXJuICRzdHI7XHJcbn1cclxuXHJcbi8vLyBNYXAgTmV4dFxyXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHttYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXHJcbi8vLyBAcGFyYW0ge21peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxyXG4vLy9cclxuLy8vIEByZXR1cm4gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIG51bGwuXHJcbkBmdW5jdGlvbiBtYXAtbmV4dCgkbWFwLCAka2V5KSB7XHJcbiAgLy8gU3RvcmUgdGhlIHZhbHVlcyBvZiB0aGUgbWFwIGFzIGEgbGlzdCwgc28gd2UgY2FuIGFjY2VzcyB0aGVtIHdpdGggbnRoXHJcbiAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcclxuXHJcbiAgLy8gR2hldHRvIGZvciBsb29wXHJcbiAgJGk6IDE7XHJcbiAgJGZvdW5kOiBmYWxzZTtcclxuICBAZWFjaCAkdmFsIGluIG1hcC1rZXlzKCRtYXApIHtcclxuICAgIEBpZiAkZm91bmQgPT0gZmFsc2Uge1xyXG4gICAgICBAaWYgKCRrZXkgPT0gJHZhbCkge1xyXG4gICAgICAgICRmb3VuZDogdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAkaTogJGkgKyAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxyXG4gIEBpZiAkaSA+IGxlbmd0aCgkbWFwKSB7XHJcbiAgICBAcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8vIE90aGVyd2lzZSByZXR1cm4gdGhlIHZhbHVlXHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiBudGgoJHZhbHVlcywgJGkpO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIElzIEl0IExpZ2h0P1xyXG4vLy8gQ2hlY2tzIHRoZSBsaWdodG5lc3Mgb2YgJGNvbG9yLCBhbmQgaWYgaXQgcGFzc2VzIHRoZSAkdGhyZXNob2xkIG9mIGxpZ2h0bmVzcywgaXQgcmV0dXJucyB0aGUgYCR5ZXNgIGNvbG9yLiBPdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIGAkbm9gIGNvbG9yLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBkeW5hbWljYWxseSBvdXRwdXQgYSBmb3JlZ3JvdW5kIGNvbG9yIGJhc2VkIG9uIGEgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge2NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbGlnaHRuZXNzIG9mLlxyXG4vLy8gQHBhcmFtIHtjb2xvcn0gJHllcyAtIENvbG9yIHRvIHJldHVybiBpZiAkY29sb3IgaXMgbGlnaHQuXHJcbi8vLyBAcGFyYW0ge2NvbG9yfSAkbm8gLSBDb2xvciB0byByZXR1cm4gaWYgJGNvbG9yIGlzIGRhcmsuXHJcbi8vLyBAcGFyYW0ge3BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHJldHVybiBUaGUgJHllcyBjb2xvciBvciAkbm8gY29sb3IuXHJcbkBmdW5jdGlvbiBpc2l0bGlnaHQoJGNvbG9yLCAkeWVzOiAjMDAwLCAkbm86ICNmZmYsICR0aHJlc2hvbGQ6IDYwJSkge1xyXG4gIEBpZiAobGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkKSB7XHJcbiAgICBAcmV0dXJuICR5ZXM7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gJG5vO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNtYXJ0IFNjYWxlXHJcbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBsaWdodGVyIGlmIGl0J3MgbGlnaHQsIG9yIGRhcmtlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIFwiZmFkZVwiIGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge2NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cclxuLy8vIEBwYXJhbSB7cGVyY2VudGFnZX0gJHNjYWxlIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXHJcbi8vLyBAcGFyYW0ge3BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHJldHVybiBBIHNjYWxlZCBjb2xvci5cclxuQGZ1bmN0aW9uIHNtYXJ0c2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA2MCUpIHtcclxuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcclxuICAgICRzY2FsZTogLSRzY2FsZTtcclxuICB9XHJcbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XHJcbn1cclxuXHJcbi8vLyBIYXMgVmFsdWVcclxuLy8vIFJldHVybnMgdHJ1ZSBpZiBhIHZhbHVlIGlzIG5vdCAwLCBudWxsLCBvciBub25lLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBjaGVjayBmb3IgdmFsdWVzIGxpa2UgYGJvcmRlcjogMGAgb3IgYGJveC1zaGFkb3c6IG5vbmVgLlxyXG4vLy9cclxuLy8vIEBwYXJhbSAkdmFsIC0gVmFsdWUgdG8gY2hlY2suXHJcbi8vL1xyXG4vLy8gQHJldHVybiBUcnVlIGlmIGAkdmFsYCBpcyBub3QgMCwgbnVsbCwgb3Igbm9uZS5cclxuQGZ1bmN0aW9uIGhhc3ZhbHVlKCR2YWwpIHtcclxuICBAaWYgJHZhbCA9PSBudWxsIG9yICR2YWwgPT0gbm9uZSB7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBAaWYgdHlwZS1vZigkdmFsKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkdmFsKSA9PSAwIHtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vIEdldCBTaWRlXHJcbi8vLyBEZXRlcm1pbmUgYSB0b3AvcmlnaHQvYm90dG9tL3JpZ2h0IHZhbHVlIG9uIGEgcGFkZGluZywgbWFyZ2luLCBldGMuIHByb3BlcnR5LCBubyBtYXR0ZXIgaG93IG1hbnkgdmFsdWVzIHdlcmUgcGFzc2VkIGluLiBVc2UgdGhpcyBmdW5jdGlvbiBpZiB5b3UgbmVlZCB0byBrbm93IHRoZSBzcGVjaWZpYyBzaWRlIG9mIGEgdmFsdWUsIGJ1dCBkb24ndCBrbm93IGlmIHRoZSB2YWx1ZSBpcyB1c2luZyBzaG9ydGhhbmQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtsaXN0fG51bWJlcn0gJHZhbCAtIFZhbHVlIHRvIGFuYWx5emUuIFNob3VsZCBiZSBhIHNob3J0aGFuZCBzaXppbmcgcHJvcGVydHksIGUuZy4gXCIxZW0gMmVtIDFlbVwiXHJcbi8vLyBAcGFyYW0ge2tleXdvcmR9ICRzaWRlIC0gU2lkZSB0byByZXR1cm4uIFNob3VsZCBiZSB0b3AsIHJpZ2h0LCBib3R0b20sIG9yIGxlZnQuXHJcbi8vL1xyXG4vLy8gQHJldHVybiBBIHNpbmdsZSB2YWx1ZSBiYXNlZCBvbiBgJHZhbGAgYW5kIGAkc2lkZWAuXHJcbkBmdW5jdGlvbiBnZXQtc2lkZSgkdmFsLCAkc2lkZSkge1xyXG4gICRsZW5ndGg6IGxlbmd0aCgkdmFsKTtcclxuXHJcbiAgQGlmICRsZW5ndGggPT0gMSB7XHJcbiAgICBAcmV0dXJuICR2YWw7XHJcbiAgfVxyXG4gIEBpZiAkbGVuZ3RoID09IDIge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KChcclxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXHJcbiAgICAgIGJvdHRvbTogbnRoKCR2YWwsIDEpLFxyXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXHJcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXHJcbiAgICApLCAkc2lkZSk7XHJcbiAgfVxyXG4gIEBpZiAkbGVuZ3RoID09IDMge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KChcclxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXHJcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCAyKSxcclxuICAgICAgcmlnaHQ6IG50aCgkdmFsLCAyKSxcclxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMyksXHJcbiAgICApLCAkc2lkZSk7XHJcbiAgfVxyXG4gIEBpZiAkbGVuZ3RoID09IDQge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KChcclxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXHJcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXHJcbiAgICAgIGJvdHRvbTogbnRoKCR2YWwsIDMpLFxyXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgNCksXHJcbiAgICApLCAkc2lkZSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gR2V0IEJvcmRlciBWYWx1ZVxyXG4vLy8gR2l2ZW4gYm9yZGVyICR2YWwsIGZpbmQgYSBzcGVjaWZpYyBlbGVtZW50IG9mIHRoZSBib3JkZXIsIHdoaWNoIGlzICRlbGVtLiBUaGUgcG9zc2libGUgdmFsdWVzIGZvciAkZWxlbSBhcmUgd2lkdGgsIHN0eWxlLCBhbmQgY29sb3IuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtsaXN0fSAkdmFsIC0gQm9yZGVyIHZhbHVlIHRvIGZpbmQgYSB2YWx1ZSBpbi5cclxuLy8vIEBwYXJhbSB7a2V5d29yZH0gJGVsZW0gLSBCb3JkZXIgY29tcG9uZW50IHRvIGV4dHJhY3QuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIElmIHRoZSB2YWx1ZSBleGlzdHMsIHJldHVybnMgdGhlIHZhbHVlLiBJZiB0aGUgdmFsdWUgaXMgbm90IGluIHRoZSBib3JkZXIgZGVmaW5pdGlvbiwgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgMHB4IHdpZHRoLCBzb2xpZCBzdHlsZSwgb3IgYmxhY2sgYm9yZGVyLlxyXG4gQGZ1bmN0aW9uIGdldC1ib3JkZXItdmFsdWUoJHZhbCwgJGVsZW0pIHtcclxuICAgLy8gRmluZCB0aGUgd2lkdGgsIHN0eWxlLCBvciBjb2xvciBhbmQgcmV0dXJuIGl0XHJcbiAgIEBlYWNoICR2IGluICR2YWwge1xyXG4gICAgICR0eXBlOiB0eXBlLW9mKCR2KTtcclxuICAgICBAaWYgJGVsZW0gPT0gd2lkdGggYW5kICR0eXBlID09ICdudW1iZXInIHtcclxuICAgICAgIEByZXR1cm4gJHY7XHJcbiAgICAgfVxyXG4gICAgIEBpZiAkZWxlbSA9PSBzdHlsZSBhbmQgJHR5cGUgPT0gJ3N0cmluZycge1xyXG4gICAgICAgQHJldHVybiAkdjtcclxuICAgICB9XHJcbiAgICAgQGlmICRlbGVtID09IGNvbG9yIGFuZCAkdHlwZSA9PSAnY29sb3InIHtcclxuICAgICAgIEByZXR1cm4gJHY7XHJcbiAgICAgfVxyXG4gICB9XHJcblxyXG4gICAvLyBEZWZhdWx0c1xyXG4gICAkZGVmYXVsdHM6IChcclxuICAgICB3aWR0aDogMCxcclxuICAgICBzdHlsZTogc29saWQsXHJcbiAgICAgY29sb3I6IGJsYWNrLFxyXG4gICApO1xyXG4gICBAcmV0dXJuIG1hcC1nZXQoJGRlZmF1bHRzLCAkZWxlbSk7XHJcbiB9XHJcblxyXG4vLy8gR2V0IFNoYWRvdyBWYWx1ZVxyXG4vLy8gR2l2ZW4gc2hhZG93IHZhbHVlICR2YWwsIGZpbmQgYSBzcGVjaWZpYyBlbGVtZW50IG9mIHRoZSBzaGFkb3csIHdoaWNoIGlzICRlbGVtLiBUaGUgcG9zc2libGUgdmFsdWVzIGZvciAkZWxlbSBhcmUgeCwgeSwgc2l6ZSwgc3ByZWFkLCBjb2xvciwgYW5kIGluc2V0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7bGlzdH0gJHZhbCAtIFNoYWRvdyB2YWx1ZSB0byBmaW5kIGEgdmFsdWUgaW4uXHJcbi8vLyBAcGFyYW0ge2tleXdvcmR9ICRlbGVtIC0gU2hhZG93IGNvbXBvbmVudCB0byBleHRyYWN0LlxyXG4vLy9cclxuLy8vIEByZXR1cm4gSWYgdGhlIHZhbHVlIGV4aXN0cywgcmV0dXJucyB0aGUgdmFsdWUuIElmIHRoZSB2YWx1ZSBpcyBub3Qgc2V0LCByZXR1cm5zIGZhbHNlLiBJZiBgJGVsZW1gIGlzIFwiaW5zZXRcIiwgcmV0dXJucyB0cnVlLCBvdGhlcndpc2UgZmFsc2UuXHJcbkBmdW5jdGlvbiBnZXQtc2hhZG93LXZhbHVlKCR2YWwsICRlbGVtKSB7XHJcbiAgLy8gUmV0dXJuIFwibm9uZVwiIGlmIHRoZXJlJ3Mgbm8gc2hhZG93XHJcbiAgQGlmICR2YWwgPT0gbm9uZSB7XHJcbiAgICBAcmV0dXJuIG5vbmU7XHJcbiAgfVxyXG5cclxuICAvLyBJbnNldCBhbmQgY29sb3IgYXJlIGFsd2F5cyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmRcclxuICBAaWYgJGVsZW0gPT0gaW5zZXQge1xyXG4gICAgQHJldHVybiBudGgoJHZhbCwgMSkgPT0gaW5zZXQ7XHJcbiAgfVxyXG4gIEBpZiAkZWxlbSA9PSBjb2xvciB7XHJcbiAgICBAaWYgdHlwZS1vZihudGgoJHZhbCwgLTEpKSA9PSBjb2xvciB7XHJcbiAgICAgIEByZXR1cm4gbnRoKCR2YWwsIC0xKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHJldHVybiBibGFjaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFRoZSByZXN0IG9mIHRoZSB2YWx1ZXMgYXJlIGxvY2F0ZWQgcGVyaWxvdXNseSBpbiB0aGUgbWlkZGxlXHJcbiAgJHZhbHVlczogKCk7XHJcbiAgQGVhY2ggJHYgaW4gJHZhbCB7XHJcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gJ251bWJlcicge1xyXG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHYpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAaWYgJGVsZW0gPT0geCB7XHJcbiAgICBAaWYgbGVuZ3RoKCR2YWx1ZXMpID49IDEge1xyXG4gICAgICBAcmV0dXJuIG50aCgkdmFsdWVzLCAxKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiAkZWxlbSA9PSB5IHtcclxuICAgIEBpZiBsZW5ndGgoJHZhbHVlcykgPj0gMiB7XHJcbiAgICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsIDIpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRlbGVtID09IHNpemUge1xyXG4gICAgQGlmIGxlbmd0aCgkdmFsdWVzKSA+PSAzIHtcclxuICAgICAgQHJldHVybiBudGgoJHZhbHVlcywgMyk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2UgaWYgJGVsZW0gPT0gc3ByZWFkIHtcclxuICAgIEBpZiBsZW5ndGgoJHZhbHVlcykgPj0gNCB7XHJcbiAgICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsIDQpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU3RyaXAgVW5pdFxyXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxyXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XHJcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XHJcbn1cclxuXHJcbi8vLyBUdXJuIHRvIERlZ3JlZXNcclxuLy8vIENvbnZlcnRzIGEgdHVybiB1bml0IHRvIHRoZSBlcXVpdmFsZW50IHVuaXQgaW4gZGVncmVlcy4gMXR1cm4gaXMgZXF1YWwgdG8gMzYwIGRlZ3JlZXMuIE5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCB0dXJuLCBzbyB0aGlzIGZ1bmN0aW9uIGFsbG93cyB1cyB0byB1c2UgdHVybnMgd2hpbGUgb3V0cHV0dGluZyBhIHZhbHVlIHRoYXQgYWxsIGJyb3dzZXJzIHVuZGVyc3RhbmQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICR2YWx1ZSAtIFR1cm4gdmFsdWUgdG8gY29udmVydC5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIFRoZSBzYW1lIHZhbHVlLCBidXQgaW4gZGVncmVlcy5cclxuQGZ1bmN0aW9uIHR1cm4tdG8tZGVnKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMzYwZGVnO1xyXG59XHJcblxyXG4vLy8gQ29udmVydCB0byBSZW1cclxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkcmVtLWJhc2VgIHZhcmlhYmxlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxyXG4vLy9cclxuLy8vIEByZXR1cm4gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLlxyXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSAge1xyXG4gICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZS12YWx1ZSkgKiAxcmVtO1xyXG4gIEBpZiAoJHZhbHVlID09IDByZW0pIHsgJHZhbHVlOiAwOyB9IC8vIFR1cm4gMHJlbSBpbnRvIDBcclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuLy8vIFJlbSBDYWxjdWxhdG9yXHJcbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLiBUaGlzIGZ1bmN0aW9uIHdvcmtzIGEgbG90IGxpa2UgYGNvbnZlcnQtdG8tcmVtYCwgZXhjZXB0IGl0IGNhbiBjb252ZXJ0IG1vcmUgdGhhbiBvbmUgdmFsdWUgYXQgb25jZSwgd2hpY2ggaXMgdXNlZnVsIHdoZW4gc2V0dGluZyBtdWx0aXBsZSB2YWx1ZXMgb24gYSBgbWFyZ2luYCBvciBgcGFkZGluZ2AgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtudW1iZXJ8bGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxyXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2UtdmFsdWU6IG51bGwpIHtcclxuICBAaWYgJGJhc2UtdmFsdWUgPT0gbnVsbCB7XHJcbiAgICAkYmFzZS12YWx1ZTogJHJlbS1iYXNlO1xyXG4gIH1cclxuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XHJcblxyXG4gIEBpZiAkbWF4ID09IDEgeyBAcmV0dXJuIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAxKSwgJGJhc2UtdmFsdWUpOyB9XHJcblxyXG4gICRyZW1WYWx1ZXM6ICgpO1xyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XHJcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcclxuICB9XHJcbiAgQHJldHVybiAkcmVtVmFsdWVzO1xyXG59XHJcbiIsbnVsbCwiLypcclxuICBDYXJkc1xyXG5cclxuICBTdHJ1Y3R1cmU6XHJcblxyXG4gIHRpdGxlc1xyXG4gIGxpc3RzXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gQ2FyZFxyXG4kY2FyZC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xyXG4kY2FyZC1jb2xvcjogaXNpdGxpZ2h0KCRjYXJkLWJhY2tncm91bmQpICFkZWZhdWx0O1xyXG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCBzbWFydHNjYWxlKCRjYXJkLWJhY2tncm91bmQsIDclKSAhZGVmYXVsdDtcclxuJGNhcmQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuJGNhcmQtc2hhZG93OiAwIDFweCAycHggcmdiYSgjMDAwLCAwLjIpICFkZWZhdWx0O1xyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcbiRjYXJkLW1hcmdpbjogMC41cmVtICFkZWZhdWx0O1xyXG5cclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiBzbWFydHNjYWxlKCRjYXJkLWJhY2tncm91bmQsIDclKSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG5AbWl4aW4gY2FyZC1jb250YWluZXIoXHJcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXHJcbiAgJGNvbG9yOiAkY2FyZC1jb2xvcixcclxuICAkYm9yZGVyOiAkY2FyZC1ib3JkZXIsXHJcbiAgJHJhZGl1czogJGNhcmQtcmFkaXVzLFxyXG4gICRzaGFkb3c6ICRjYXJkLXNoYWRvdyxcclxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZyxcclxuICAkbWFyZ2luOiAkY2FyZC1tYXJnaW5cclxuKSB7XHJcbiAgYm9yZGVyOiAkYm9yZGVyO1xyXG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XHJcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XHJcbiAgICBjb2xvcjogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gY2FyZC1kaXZpZGVyKFxyXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXHJcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcclxuKSB7XHJcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbn1cclxuXHJcbkBtaXhpbiBjYXJkLXNlY3Rpb24oXHJcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcclxuKSB7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoY2FyZCkge1xyXG4gIC5jYXJkIHtcclxuICAgIEBpbmNsdWRlIGNhcmQtY29udGFpbmVyO1xyXG5cclxuICAgIEBlYWNoICRjb2xvciBpbiBtYXAta2V5cygkZm91bmRhdGlvbi1jb2xvcnMpIHtcclxuICAgICAgJi4jeyRjb2xvcn0ge1xyXG4gICAgICAgICRjb2xvci12YWx1ZTogbWFwLWdldCgkZm91bmRhdGlvbi1jb2xvcnMsICRjb2xvcik7XHJcbiAgICAgICAgQGluY2x1ZGUgY2FyZC1jb250YWluZXIoXHJcbiAgICAgICAgICAkYmFja2dyb3VuZDogJGNvbG9yLXZhbHVlLFxyXG4gICAgICAgICAgJGNvbG9yOiBpc2l0bGlnaHQoJGNvbG9yLXZhbHVlKSxcclxuICAgICAgICAgICRib3JkZXI6IDBcclxuICAgICAgICApO1xyXG4gICAgICAgIC5jYXJkLWRpdmlkZXIge1xyXG4gICAgICAgICAgQGluY2x1ZGUgY2FyZC1kaXZpZGVyKFxyXG4gICAgICAgICAgICAkYmFja2dyb3VuZDogc21hcnRzY2FsZSgkY29sb3ItdmFsdWUsIDclKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgICAuY2FyZC1kaXZpZGVyIHtcclxuICAgICAgQGluY2x1ZGUgY2FyZC1kaXZpZGVyO1xyXG4gICAgfVxyXG4gICAgLmNhcmQtc2VjdGlvbiB7XHJcbiAgICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcclxuICAgIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gaW1hZ2UtdHJpYW5nbGUoJGNvbG9yOiAjMDAwKSB7XG4gICRjb2xvcjogcmdiKHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcikpO1xuICBAcmV0dXJuICdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2ZXJzaW9uPVwiMS4xXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAzMiAyNFwiPjxwb2x5Z29uIHBvaW50cz1cIjAsMCAzMiwwIDE2LDI0XCIgc3R5bGU9XCJmaWxsOiAjeyRjb2xvcn1cIj48L3BvbHlnb24+PC9zdmc+Jztcbn1cblxuQG1peGluIGltYWdlLWNoZWNrbWFyaygkY29sb3I6ICMwMDApIHtcbiAgJGNvbG9yOiByZ2IocmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj48cGF0aCBmaWxsPVwiI3skY29sb3J9XCIgZD1cIk0xNiAwYy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2czcuMTYzIDE2IDE2IDE2IDE2LTcuMTYzIDE2LTE2LTcuMTYzLTE2LTE2LTE2em02LjkwNiA4Ljg3NWwyLjIxOSAyLjAzMS0xMi4wNjMgMTMuMjgxLTYuMTg4LTYuMTg4IDIuMTI1LTIuMTI1IDMuOTM4IDMuOTM4IDkuOTY5LTEwLjkzOHpcIi8+PC9zdmc+Jyk7XG5cbiAgLy8gSUUxMCBmYWxsYmFjaywgc2luY2UgaXQgZG9lc24ndCBzdXBwb3J0IFNWRyBkYXRhIFVSTHNcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFnQ0FZQUFBQnplbnIwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFkbEpSRUZVZU5yTWwwRnVnekFRUlkzVFJaZW9GeWhWTDBCT2tHVFhKZXphSFp3Z3VVbkVDYUNyZEZkNmdxUW5DTjExVXlrNVFla05PbE9OSldNVkdNQ2dmR2xrRUlZM0huc0cyeEZNM2Q5NlBqUUIyQUpzV2RQdEFQWU9sbitkVHdYbnV3NERIRUd6QnZORk42RURDVGlTOVhJQXdCNDBhY05vdWNLb3hPRElpZTBBd0FPQ3U4S09TbklpTngvTWFrSytBN3NXOW9UZmVyeHgzZlAzVDFuVVJvQkcvaXJHVmFoSHdqSG0vR2d4N0UzVE1WZHJRbW9QMGduZ2doaHBaUTNRdkcvRWRQTFVlbEFSV0k4QXljanE5TWQwcU1JZGJjTmhqbU9LTG9ZN3F1azNsMVJlYmVxZzRBd0ZrbXE3TFdHT2gxcG1OWTBldFpBV1NxME9YOEhvUzRKdld1Q29wYlNZMjZFR1IvQ1c4NkswQkYrcHdrTHdsUHV5SEpoT0NsNW9lNFp0Risrdk9xU1QrR2RPWXdPKzcxcE4yVk5Bam1RR1BDZTQyd2V1SERnMFBJOG9sVXduWXJYVEdRSkg5Z3hxOGwxTEt2clF4NE82L1lZMzJLcC91Z2IzZXk3Z1o0eEF6dWhZaVlUeEIvVUhaRkF1YVJFVlhaMmc2eUZsdkVDMnlvS0VtYnNSWllOZ1ZMazJKZWFPYUcreExITitXQ3N6RFdNcUxHT3JKRmExRGxBcGpTZHdvSEpHcUd6TEliMCtjYXMwd2g1Qmg3ODBuZ3N3eDhHSkQ3aDhzSGcyd0xBL21mRExQWnBkeE9GMHF1UDVyd0FEQUFGSXpTUnZ1MW01QUFBQUFFbEZUa1N1UW1DQycpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBZ0NBWUFBQUJ6ZW5yMEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBVDlKUkVGVWVOck1WNHNSZ3lBTURVN2dDSTZBRTdRak1JTGRvQ080Q2QyZzNhQjJBaDJoRzdRYjBPRFJPMnI5OEFucXU4dHhLdklTSUkvQXdCRktLWTZOUUR1Z0hTZTZOV2dQdEJ0anJBTUtJSEdGMWlwLzZIK3FHT0lDN2E3aW9jY29mTWtGMmt2UlFZOGxmS1k4RlNxWHlGUGpaeWFZdmViWXRHZzVwTVVicmNRc2VlcUh6UG9nVnlBSHd5SFhYUGZaL2NDTUEzcnFPWEdrRjlOT2Jid09sNkhzRlM1QmROS2FYVG5UajJkR1hpblJZR1FueDc0Q2lOVE9sdC9jTWZwZUpTRWgrZG5sSnlDVTJpSWtxNENJbkllbXRJc0RjbVl0aCtUYzl4Q0R5SFFTTWVSZURvdzRVVm52ODlEajJ5VU54NXdZa3JlQis2ZFB3OXBIMlFiT3hKQnIxRDVTTEVjY3VFWm1FUDhPMVBvNjRhQnlpOElWZWh4TEF2TC84b3o0VEZqZWZIc3B5VFl2U3ZkVmx1L2lZcktMcTltYWwxTzI5Zlg4SThBQU5wSVF6QzBoVGRFQUFBQUFTVVZPUks1Q1lJST0nKTtcbiAgICB9XG4gIH1cbn0iLCIvKlxyXG4gIFBPUFVQXHJcbiAgLS0tLS1cclxuXHJcbiAgQSBmbG9hdGluZyBjb250YWluZXIgdGhhdCBjYW4gYW5jaG9yIHRvIGFueSBvdGhlciBvbi1zY3JlZW4gZWxlbWVudCwgYW5kIGNvbnRhaW4gYW55IGNvbnRlbnQsIGluY2x1ZGluZyBncmlkIGJsb2NrcyBvciBwYW5lbHMuXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gUG9wdXBcclxuJHBvcHVwLXdpZHRoOiByZW0tY2FsYygzMDApICFkZWZhdWx0O1xyXG4kcG9wdXAtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcclxuJHBvcHVwLWJvcmRlcjogMCAhZGVmYXVsdDtcclxuJHBvcHVwLXJhZGl1czogMCAhZGVmYXVsdDtcclxuJHBvcHVwLXNoYWRvdzogMCAwIDEwcHggcmdiYSgjMDAwLCAwLjI1KSAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4lcG9wdXAge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAxMDAwO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAmLnRldGhlci1lbmFibGVkIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBwb3B1cC1sYXlvdXQoXHJcbiAgJHdpZHRoOiAkcG9wdXAtd2lkdGhcclxuKSB7XHJcbiAgd2lkdGg6ICRwb3B1cC13aWR0aDtcclxufVxyXG5AbWl4aW4gcG9wdXAtc3R5bGUoXHJcbiAgJGJhY2tncm91bmQ6ICRwb3B1cC1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogIzAwMCxcclxuICAkcmFkaXVzOiAkcG9wdXAtcmFkaXVzLFxyXG4gICRzaGFkb3c6ICRwb3B1cC1zaGFkb3csXHJcbiAgJGJvcmRlcjogJHBvcHVwLWJvcmRlclxyXG4pIHtcclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XHJcbiAgYm9yZGVyOiAkYm9yZGVyO1xyXG59XHJcblxyXG5AbWl4aW4gcG9wdXAoXHJcbiAgJHdpZHRoOiAkcG9wdXAtd2lkdGgsXHJcbiAgJGJhY2tncm91bmQ6ICRwb3B1cC1iYWNrZ3JvdW5kLFxyXG4gICRyYWRpdXM6ICRwb3B1cC1yYWRpdXMsXHJcbiAgJHNoYWRvdzogJHBvcHVwLXNoYWRvdyxcclxuICAkYm9yZGVyOiAkcG9wdXAtYm9yZGVyXHJcbikge1xyXG4gIEBleHRlbmQgJXBvcHVwO1xyXG4gIEBpbmNsdWRlIHBvcHVwLWxheW91dCgkd2lkdGgpO1xyXG4gIEBpbmNsdWRlIHBvcHVwLXN0eWxlKCRiYWNrZ3JvdW5kLCBpc2l0bGlnaHQoJGJhY2tncm91bmQpLCAkcmFkaXVzLCAkc2hhZG93LCAkYm9yZGVyKTtcclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhwb3B1cCkge1xyXG4gIC5wb3B1cCB7XHJcbiAgICBAaW5jbHVkZSBwb3B1cDtcclxuXHJcbiAgICAmLmRhcmsgICAgeyBAaW5jbHVkZSBwb3B1cC1zdHlsZSgkZGFyay1jb2xvciwgI2ZmZik7IH1cclxuICAgICYucHJpbWFyeSB7IEBpbmNsdWRlIHBvcHVwLXN0eWxlKCRwcmltYXJ5LWNvbG9yLCBpc2l0bGlnaHQoJHByaW1hcnktY29sb3IpKTsgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGT1VOREFUSU9OIE1PVElPTiBVSVxyXG4vLyBUYWJsZSBvZiBDb250ZW50c1xyXG4vL1xyXG4vLyAwLiBWYXJpYWJsZXNcclxuLy8gMS4gQmFzZSBUcmFuc2l0aW9uc1xyXG4vLyAgICAgIGEuIFNsaWRlXHJcbi8vICAgICAgYi4gRmFkZVxyXG4vLyAgICAgIGMuIEhpbmdlXHJcbi8vICAgICAgZC4gU2NhbGVcclxuLy8gICAgICBlLiBTcGluXHJcbi8vIDIuIEJhc2UgQW5pbWF0aW9uc1xyXG4vLyAgICAgIGEuIFNoYWtlXHJcbi8vICAgICAgYi4gU3Bpbm5lcnNcclxuLy8gICAgICBjLiBXaWdnbGVcclxuLy8gMy4gSFRNTCBBdHRyaWJ1dGVzXHJcblxyXG4vLyAwLiBWYXJpYWJsZXNcclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxyXG5cclxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXHJcbi8vIE1vdGlvbiBVSVxyXG4vLyBDbGFzc2VzIHRvIHVzZSB3aGVuIHRyaWdnZXJpbmcgaW4vb3V0IGFuaW1hdGlvbnNcclxuJG1vdGlvbi1jbGFzczogKFxyXG4gIGluOiBcIm5nLWVudGVyXCIsXHJcbiAgb3V0OiBcIm5nLWxlYXZlXCIsXHJcbikgIWRlZmF1bHQ7XHJcbiRtb3Rpb24tY2xhc3MtYWN0aXZlOiAoXHJcbiAgaW46IFwibmctZW50ZXItYWN0aXZlXCIsXHJcbiAgb3V0OiBcIm5nLWxlYXZlLWFjdGl2ZVwiLFxyXG4pICFkZWZhdWx0O1xyXG4kbW90aW9uLWNsYXNzLXN0YWdnZXI6IChcclxuICBpbjogXCJuZy1lbnRlci1zdGFnZ2VyXCIsXHJcbiAgb3V0OiBcIm5nLWxlYXZlLXN0YWdnZXJcIixcclxuKSAhZGVmYXVsdDtcclxuJG1vdGlvbi1jbGFzcy1zaG93aGlkZTogKFxyXG4gIGluOiBcIm5nLWhpZGUtcmVtb3ZlXCIsXHJcbiAgb3V0OiBcIm5nLWhpZGUtYWRkXCIsXHJcbik7XHJcbiRtb3Rpb24tY2xhc3Mtc2hvd2hpZGUtYWN0aXZlOiAoXHJcbiAgaW46IFwibmctaGlkZS1yZW1vdmUtYWN0aXZlXCIsXHJcbiAgb3V0OiBcIm5nLWhpZGUtYWRkLWFjdGl2ZVwiLFxyXG4pO1xyXG5cclxuLy8gU2V0IGlmIG1vdmVtZW50LWJhc2VkIHRyYW5zaXRpb25zIHNob3VsZCBhbHNvIGZhZGUgdGhlIGVsZW1lbnQgaW4gYW5kIG91dFxyXG4kbW90aW9uLXNsaWRlLWFuZC1mYWRlOiBmYWxzZSAhZGVmYXVsdDtcclxuJG1vdGlvbi1oaW5nZS1hbmQtZmFkZTogdHJ1ZSAhZGVmYXVsdDtcclxuJG1vdGlvbi1zY2FsZS1hbmQtZmFkZTogdHJ1ZSAhZGVmYXVsdDtcclxuJG1vdGlvbi1zcGluLWFuZC1mYWRlOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8gRGVmYXVsdCBzcGVlZCBmb3IgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnNcclxuJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0OiA1MDBtcyAhZGVmYXVsdDtcclxuXHJcbi8vIFNsb3cgYW5kIGZhc3QgbW9kaWZpZGVyc1xyXG4kbW90aW9uLWR1cmF0aW9uLXNsb3c6IDc1MG1zICFkZWZhdWx0O1xyXG4kbW90aW9uLWR1cmF0aW9uLWZhc3Q6IDI1MG1zICFkZWZhdWx0O1xyXG4kbW90aW9uLXN0YWdnZXItZHVyYXRpb24tZGVmYXVsdDogMTUwbXMgIWRlZmF1bHQ7XHJcbiRtb3Rpb24tc3RhZ2dlci1kdXJhdGlvbi1zaG9ydDogNTBtcyAhZGVmYXVsdDtcclxuJG1vdGlvbi1zdGFnZ2VyLWR1cmF0aW9uLWxvbmc6IDMwMG1zICFkZWZhdWx0O1xyXG5cclxuLy8gRGVmYXVsdCB0aW1pbmcgZnVuY3Rpb24gZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zXHJcbiRtb3Rpb24tdGltaW5nLWRlZmF1bHQ6IGVhc2UgIWRlZmF1bHQ7XHJcblxyXG4vLyBCdWlsdC1pbiBhbmQgY3VzdG9tIGVhc2luZyBmdW5jdGlvbnNcclxuLy8gRXZlcnkgaXRlbSBpbiB0aGlzIG1hcCBiZWNvbWVzIGEgQ1NTIGNsYXNzXHJcbiRtb3Rpb24tdGltaW5nczogKFxyXG4gIGxpbmVhcjogbGluZWFyLFxyXG4gIGVhc2U6IGVhc2UsXHJcbiAgZWFzZUluOiBlYXNlLWluLFxyXG4gIGVhc2VPdXQ6IGVhc2Utb3V0LFxyXG4gIGVhc2VJbk91dDogZWFzZS1pbi1vdXQsXHJcbiAgYm91bmNlSW46IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQwLCAxLjI0NSksXHJcbiAgYm91bmNlT3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxyXG4gIGJvdW5jZUluT3V0OiBjdWJpYy1iZXppZXIoMC43NjAsIC0wLjI0NSwgMC4yNDAsIDEuMjQ1KSxcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vIERlZmF1bHQgZGVsYXkgZm9yIGFsbCB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9uc1xyXG4kbW90aW9uLWRlbGF5LWRlZmF1bHQ6IDAgIWRlZmF1bHQ7XHJcbi8vIFNob3J0IGFuZCBsb25nIGRlbGF5IG1vZGlmaWVyc1xyXG4kbW90aW9uLWRlbGF5LXNob3J0OiAzMDBtcyAhZGVmYXVsdDtcclxuJG1vdGlvbi1kZWxheS1sb25nOiA3MDBtcyAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4vLyBMb29rcyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24gaW4gdGhlIGxpc3Qgb2YgcHJlc2V0c1xyXG4vLyBJZiBub25lIGFyZSBmb3VuZCwgcmV0dXJucyB0aGUgdmFsdWUgYXMtaXMuXHJcbkBmdW5jdGlvbiBnZXQtdGltaW5nKCR0aW1pbmcpIHtcclxuICBAaWYgbWFwLWhhcy1rZXkoJG1vdGlvbi10aW1pbmdzLCAkdGltaW5nKSB7XHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1vdGlvbi10aW1pbmdzLCAkdGltaW5nKTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAkdGltaW5nO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQXBwbGllcyB0cmFuc2l0aW9uIHNldHRpbmdzIGNvbW1vbiB0byBhbGwgbWl4aW5zXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcclxuICAkZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tZGVmYXVsdCxcclxuICAkdGltaW5nOiAkbW90aW9uLXRpbWluZy1kZWZhdWx0LFxyXG4gICRkZWxheTogJG1vdGlvbi1kZWxheS1kZWZhdWx0XHJcbikge1xyXG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcclxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZ2V0LXRpbWluZygkdGltaW5nKTtcclxuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XHJcbn1cclxuXHJcbi8vIFdyYXBzIGNvbnRlbnQgaW4gYW4gZW50ZXIvbGVhdmUgY2xhc3MsIGNoYWluZWQgdG8gdGhlIHBhcmVudCBzZWxlY3RvclxyXG4vLyBEZWZpbmUgdGhlIGluaXRpYWwgc3RhdGUgb2YgYSB0cmFuc2l0aW9uIGhlcmVcclxuQG1peGluIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xyXG4gICRzZWwxOiBtYXAtZ2V0KCRtb3Rpb24tY2xhc3MsICRkaXIpO1xyXG4gICRzZWwyOiBtYXAtZ2V0KCRtb3Rpb24tY2xhc3Mtc2hvd2hpZGUsICRkaXIpO1xyXG5cclxuICAmLiN7JHNlbDF9LFxyXG4gICYuI3skc2VsMn0ge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBXcmFwcyBjb250ZW50IGluIGFuIGVudGVyL2xlYXZlIGFjdGl2ZSBjbGFzcywgY2hhaW5lZCB0byB0aGUgbWF0Y2hpbmdcclxuLy8gZW50ZXIvbGVhdmUgY2xhc3MsIGNoYWluZWQgdG8gdGhlIHBhcmVudCBzZWxlY3RvclxyXG4vLyBEZWZpbmUgdGhlIGVuZCBzdGF0ZSBvZiBhIHRyYW5zaXRpb24gaGVyZVxyXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xyXG4gICRzZWwxOiAgbWFwLWdldCgkbW90aW9uLWNsYXNzLCAkZGlyKTtcclxuICAkc2VsMUE6IG1hcC1nZXQoJG1vdGlvbi1jbGFzcy1hY3RpdmUsICRkaXIpO1xyXG5cclxuICAkc2VsMjogIG1hcC1nZXQoJG1vdGlvbi1jbGFzcy1zaG93aGlkZSwgJGRpcik7XHJcbiAgJHNlbDJBOiBtYXAtZ2V0KCRtb3Rpb24tY2xhc3Mtc2hvd2hpZGUtYWN0aXZlLCAkZGlyKTtcclxuXHJcbiAgJi4jeyRzZWwxfS4jeyRzZWwxQX0sXHJcbiAgJi4jeyRzZWwyfS4jeyRzZWwyQX0ge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gc3RhZ2dlcigkZGVsYXktYW1vdW50KSB7XHJcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcclxuICAvLyB0aGlzIGlzIHRvIGF2b2lkIGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXHJcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjowO1xyXG59XHJcblxyXG5cclxuLy8gMS4gQmFzZSBUcmFuc2l0aW9uc1xyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXHJcblxyXG4vLyBTTElERVxyXG5AbWl4aW4gc2xpZGUgKFxyXG4gICRkaXI6IGluLFxyXG4gICRmcm9tOiBsZWZ0LFxyXG4gICRmYWRlOiAkbW90aW9uLXNsaWRlLWFuZC1mYWRlLFxyXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxyXG4gICR0aW1pbmc6ICRtb3Rpb24tdGltaW5nLWRlZmF1bHQsXHJcbiAgJGRlbGF5OiAkbW90aW9uLWRlbGF5LWRlZmF1bHRcclxuKSB7XHJcbiAgJHNsaWRlRGlyZWN0aW9uczogKFxyXG4gICAgdG9wOiAgICB0cmFuc2xhdGVZKC0xMDAlKSxcclxuICAgIHJpZ2h0OiAgdHJhbnNsYXRlWCgxMDAlKSxcclxuICAgIGJvdHRvbTogdHJhbnNsYXRlWSgxMDAlKSxcclxuICAgIGxlZnQ6ICAgdHJhbnNsYXRlWCgtMTAwJSksXHJcbiAgKTtcclxuICAkc3RhcnQ6ICcnO1xyXG4gICRlbmQ6ICcnO1xyXG5cclxuICBAaWYgJGRpciA9PSBpbiB7XHJcbiAgICAkc3RhcnQ6IG1hcC1nZXQoJHNsaWRlRGlyZWN0aW9ucywgJGZyb20pO1xyXG4gICAgJGVuZDogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICAkc3RhcnQ6IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcclxuICAgICRlbmQ6IG1hcC1nZXQoJHNsaWRlRGlyZWN0aW9ucywgJGZyb20pO1xyXG4gIH1cclxuXHJcbiAgLy8gQ1NTIE91dHB1dFxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgdHJhbnNmb3JtOiAkc3RhcnQ7XHJcblxyXG4gICAgQGlmICRmYWRlIHsgb3BhY2l0eTogaWYoJGRpciA9PSBpbiwgMCwgMSk7IH1cclxuICB9XHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJGRpcikge1xyXG4gICAgdHJhbnNmb3JtOiAkZW5kO1xyXG5cclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDEsIDApOyB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGQURFXHJcbkBtaXhpbiBmYWRlKFxyXG4gICRkaXI6IGluLFxyXG4gICRmcm9tOiAwLFxyXG4gICR0bzogMSxcclxuICAkZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tZGVmYXVsdCxcclxuICAkdGltaW5nOiAkbW90aW9uLXRpbWluZy1kZWZhdWx0LFxyXG4gICRkZWxheTogJG1vdGlvbi1kZWxheS1kZWZhdWx0XHJcbikge1xyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcclxuICAgIG9wYWNpdHk6ICRmcm9tO1xyXG4gIH1cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XHJcbiAgICBvcGFjaXR5OiAkdG87XHJcbiAgfVxyXG59XHJcblxyXG4vLyBISU5HRVxyXG5AbWl4aW4gaGluZ2UgKFxyXG4gICRkaXI6IGluLFxyXG4gICRmcm9tOiBsZWZ0LFxyXG4gICRheGlzOiBlZGdlLFxyXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxyXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrLFxyXG4gICRmYWRlOiAkbW90aW9uLWhpbmdlLWFuZC1mYWRlLFxyXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxyXG4gICR0aW1pbmc6ICRtb3Rpb24tdGltaW5nLWRlZmF1bHQsXHJcbiAgJGRlbGF5OiAkbW90aW9uLWRlbGF5LWRlZmF1bHRcclxuKSB7XHJcblxyXG4gIC8vIFJvdGF0aW9uIGRpcmVjdGlvbnMgd2hlbiBoaW5naW5nIGZyb20gYmFjayB2cy4gZnJvbnRcclxuICAkcm90YXRpb25BbW91bnQ6IDkwZGVnO1xyXG4gICRyb3RhdGlvbnNCYWNrOiAoXHJcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uQW1vdW50ICogLTEpLFxyXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uQW1vdW50ICogLTEpLFxyXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbkFtb3VudCksXHJcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbkFtb3VudCksXHJcbiAgKTtcclxuICAkcm90YXRpb25zRnJvbTogKFxyXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbkFtb3VudCksXHJcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb25BbW91bnQpLFxyXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbkFtb3VudCAqIC0xKSxcclxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uQW1vdW50ICogLTEpLFxyXG4gICk7XHJcblxyXG4gIC8vIFJvdGF0aW9uIG9yaWdpblxyXG4gICRyb3RhdGlvbjogJyc7XHJcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcclxuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zRnJvbSwgJGZyb20pO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1iYWNrIHtcclxuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zQmFjaywgJGZyb20pO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAkdHVybi1vcmlnaW5gIG11c3QgYmUgZWl0aGVyIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YFwiO1xyXG4gIH1cclxuXHJcbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxyXG4gICRzdGFydDogJyc7XHJcbiAgJGVuZDogJyc7XHJcbiAgQGlmICRkaXIgPT0gaW4ge1xyXG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcclxuICAgICRlbmQ6IHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgJHN0YXJ0OiByb3RhdGUoMGRlZyk7XHJcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcclxuICB9XHJcblxyXG4gIC8vIFR1cm4gYXhpc1xyXG4gICRvcmlnaW46ICcnO1xyXG4gIEBpZiAkYXhpcyA9PSBlZGdlIHtcclxuICAgICRvcmlnaW46ICRmcm9tO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICAkb3JpZ2luOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcclxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICAgIHRyYW5zZm9ybTogJHN0YXJ0O1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDAsIDEpOyB9XHJcbiAgfVxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRkaXIpIHtcclxuICAgIHRyYW5zZm9ybTogJGVuZDtcclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDEsIDApOyB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTQ0FMRVxyXG5AbWl4aW4gc2NhbGUoXHJcbiAgJGRpcjogaW4sXHJcbiAgJGZyb206IDEuNSxcclxuICAkdG86IDEsXHJcbiAgJGZhZGU6ICRtb3Rpb24tc2NhbGUtYW5kLWZhZGUsXHJcbiAgJGR1cmF0aW9uOiAkbW90aW9uLWR1cmF0aW9uLWRlZmF1bHQsXHJcbiAgJHRpbWluZzogJG1vdGlvbi10aW1pbmctZGVmYXVsdCxcclxuICAkZGVsYXk6ICRtb3Rpb24tZGVsYXktZGVmYXVsdFxyXG4pIHtcclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcclxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgcHJvcGVydHk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCRmcm9tKTtcclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDAsIDEpIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJGRpcikge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgkdG8pO1xyXG4gICAgQGlmICRmYWRlIHsgb3BhY2l0eTogaWYoJGRpciA9PSBpbiwgMSwgMCkgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gU1BJTlxyXG5AbWl4aW4gc3BpbihcclxuICAkZGlyOiBpbixcclxuICAkYW1vdW50OiAwLjc1dHVybixcclxuICAkY2N3OiBmYWxzZSxcclxuICAkZmFkZTogJG1vdGlvbi1zcGluLWFuZC1mYWRlLFxyXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxyXG4gICR0aW1pbmc6ICRtb3Rpb24tdGltaW5nLWRlZmF1bHQsXHJcbiAgJGRlbGF5OiAkbW90aW9uLWRlbGF5LWRlZmF1bHRcclxuKSB7XHJcbiAgJGFtb3VudDogdHVybi10by1kZWcoJGFtb3VudCk7XHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDA7XHJcblxyXG4gIEBpZiAkZGlyID09IGluIHtcclxuICAgICRzdGFydDogaWYoJGNjdywgJGFtb3VudCwgJGFtb3VudCAqIC0xKTtcclxuICAgICRlbmQ6IDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgICRzdGFydDogMDtcclxuICAgICRlbmQ6IGlmKCRjY3csICRhbW91bnQgKiAtMSwgJGFtb3VudCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcclxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKCRzdGFydCk7XHJcbiAgICBAaWYgJGZhZGUgeyBvcGFjaXR5OiBpZigkZGlyID09IGluLCAwLCAxKTsgfVxyXG4gIH1cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgkZW5kKTtcclxuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDEsIDApOyB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gMi4gQmFzZSBBbmltYXRpb25zXHJcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuXHJcbi8vIFNIQUtFXHJcbkBrZXlmcmFtZXMgc2hha2Uge1xyXG4gIDAlLCAxMCUsIDIwJSwgMzAlLCA0MCUsIDUwJSwgNjAlLCA3MCUsIDgwJSwgOTAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3JSk7XHJcbiAgfVxyXG4gIDUlLCAxNSUsIDI1JSwgMzUlLCA0NSUsIDU1JSwgNjUlLCA3NSUsIDg1JSwgOTUlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNyUpO1xyXG4gIH1cclxuICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XHJcbn1cclxuXHJcbi8vIFNQSU5ORVJTXHJcbkBrZXlmcmFtZXMgc3Bpbi1jdyB7XHJcbiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxyXG4gIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc3Bpbi1jY3cge1xyXG4gIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZyk7IH1cclxufVxyXG5cclxuLy8gV0lHR0xFXHJcbkBrZXlmcmFtZXMgd2lnZ2xlIHtcclxuICA0MCUsIDUwJSwgNjAlIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpO1xyXG4gIH1cclxuICAzNSUsIDQ1JSwgNTUlLCA2NSUge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpO1xyXG4gIH1cclxuICAwJSwgMzAlLCA3MCUsIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uKFxyXG4gICRhbmltYXRpb24sXHJcbiAgJGR1cmF0aW9uOiAkbW90aW9uLWR1cmF0aW9uLWRlZmF1bHQsXHJcbiAgJHRpbWluZzogJG1vdGlvbi10aW1pbmctZGVmYXVsdCxcclxuICAkZGVsYXk6ICRtb3Rpb24tZGVsYXktZGVmYXVsdCxcclxuICAkaXRlcmF0aW9uczogbnVsbFxyXG4pIHtcclxuICBcclxuICBhbmltYXRpb24tbmFtZTogJGFuaW1hdGlvbjtcclxuICBhbmltYXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xyXG5cclxuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XHJcblxyXG4gIEBpZiAkZGVsYXkgIT0gbnVsbCB7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6ICRkZWxheTtcclxuICB9XHJcbiAgQGlmICRpdGVyYXRpb25zICE9IG51bGwge1xyXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogJGl0ZXJhdGlvbnM7XHJcbiAgfVxyXG5cclxuICBAaWYgJGFuaW1hdGlvbiA9PSBudWxsIHtcclxuICAgIEB3YXJuIFwiUGxlYXNlIGluY2x1ZGUgYW4gYW5pbWF0aW9uIG5hbWVcIjtcclxuICB9XHJcbn1cclxuXHJcbi8vIDMuIEhUTUwgRXhwb3J0c1xyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKG1vdGlvbikge1xyXG4gIC8qXHJcbiAgICBUcmFuc2l0aW9uc1xyXG4gICovXHJcblxyXG4gIC8vIFNsaWRlXHJcbiAgLnNsaWRlSW5Eb3duICAgIHsgQGluY2x1ZGUgc2xpZGUoJGZyb206IHRvcCk7IH1cclxuICAuc2xpZGVJbkxlZnQgICAgeyBAaW5jbHVkZSBzbGlkZSgkZnJvbTogcmlnaHQpOyB9XHJcbiAgLnNsaWRlSW5VcCAgICAgIHsgQGluY2x1ZGUgc2xpZGUoJGZyb206IGJvdHRvbSk7IH1cclxuICAuc2xpZGVJblJpZ2h0ICAgeyBAaW5jbHVkZSBzbGlkZSgkZnJvbTogbGVmdCk7IH1cclxuICAuc2xpZGVPdXRCb3R0b20geyBAaW5jbHVkZSBzbGlkZSgkZGlyOiBvdXQsICRmcm9tOiBib3R0b20pOyB9XHJcbiAgLnNsaWRlT3V0UmlnaHQgIHsgQGluY2x1ZGUgc2xpZGUoJGRpcjogb3V0LCAkZnJvbTogcmlnaHQpOyB9XHJcbiAgLnNsaWRlT3V0VXAgICAgIHsgQGluY2x1ZGUgc2xpZGUoJGRpcjogb3V0LCAkZnJvbTogdG9wKTsgfVxyXG4gIC5zbGlkZU91dExlZnQgICB7IEBpbmNsdWRlIHNsaWRlKCRkaXI6IG91dCwgJGZyb206IGxlZnQpOyB9XHJcblxyXG4gIC8vIEZhZGVcclxuICAuZmFkZUluICB7IEBpbmNsdWRlIGZhZGUoaW4sIDAsIDEpOyB9XHJcbiAgLmZhZGVPdXQgeyBAaW5jbHVkZSBmYWRlKG91dCwgMSwgMCk7IH1cclxuXHJcbiAgLy8gSGluZ2VcclxuICAuaGluZ2VJbkZyb21Ub3AgICAgICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IGluLCAkZnJvbTogdG9wKTsgfVxyXG4gIC5oaW5nZUluRnJvbVJpZ2h0ICAgIHsgQGluY2x1ZGUgaGluZ2UoJGRpcjogaW4sICRmcm9tOiByaWdodCk7IH1cclxuICAuaGluZ2VJbkZyb21Cb3R0b20gICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IGluLCAkZnJvbTogYm90dG9tKTsgfVxyXG4gIC5oaW5nZUluRnJvbUxlZnQgICAgIHsgQGluY2x1ZGUgaGluZ2UoJGRpcjogaW4sICRmcm9tOiBsZWZ0KTsgfVxyXG4gIC5oaW5nZUluRnJvbU1pZGRsZVggIHsgQGluY2x1ZGUgaGluZ2UoJGRpcjogaW4sICRmcm9tOiB0b3AsICAgJGF4aXM6IGNlbnRlcik7IH1cclxuICAuaGluZ2VJbkZyb21NaWRkbGVZICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IGluLCAkZnJvbTogcmlnaHQsICRheGlzOiBjZW50ZXIpOyB9XHJcbiAgLmhpbmdlT3V0RnJvbVRvcCAgICAgeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBvdXQsICRmcm9tOiB0b3ApOyB9XHJcbiAgLmhpbmdlT3V0RnJvbVJpZ2h0ICAgeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBvdXQsICRmcm9tOiByaWdodCk7IH1cclxuICAuaGluZ2VPdXRGcm9tQm90dG9tICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IGJvdHRvbSk7IH1cclxuICAuaGluZ2VPdXRGcm9tTGVmdCAgICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IGxlZnQpOyB9XHJcbiAgLmhpbmdlT3V0RnJvbU1pZGRsZVggeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBvdXQsICRmcm9tOiB0b3AsICAgJGF4aXM6IGNlbnRlcik7IH1cclxuICAuaGluZ2VPdXRGcm9tTWlkZGxlWSB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IHJpZ2h0LCAkYXhpczogY2VudGVyKTsgfVxyXG5cclxuICAvLyBTY2FsZVxyXG4gIC56b29tSW4gIHsgQGluY2x1ZGUgc2NhbGUoaW4sICAxLjUsIDEpOyB9XHJcbiAgLnpvb21PdXQgeyBAaW5jbHVkZSBzY2FsZShvdXQsIDAuNSwgMSk7IH1cclxuXHJcbiAgLy8gU3BpblxyXG4gIC5zcGluSW4gICAgIHsgQGluY2x1ZGUgc3BpbihpbiwgMC43NXR1cm4pOyB9XHJcbiAgLnNwaW5PdXQgICAgeyBAaW5jbHVkZSBzcGluKG91dCwgMC43NXR1cm4pOyB9XHJcbiAgLnNwaW5JbkNDVyAgeyBAaW5jbHVkZSBzcGluKGluLCAwLjc1dHVybiwgdHJ1ZSk7IH1cclxuICAuc3Bpbk91dENDVyB7IEBpbmNsdWRlIHNwaW4ob3V0LCAwLjc1dHVybiwgdHJ1ZSk7IH1cclxuXHJcbiAgLypcclxuICAgIFRyYW5zaXRpb24gbW9kaWZpZXJzXHJcbiAgKi9cclxuXHJcbiAgLy8gRHVyYXRpb25cclxuICAuc2xvdyB7IHRyYW5zaXRpb24tZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tc2xvdyAhaW1wb3J0YW50OyB9XHJcbiAgLmZhc3QgeyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbW90aW9uLWR1cmF0aW9uLWZhc3QgIWltcG9ydGFudDsgfVxyXG5cclxuICAvLyBFYXNpbmdcclxuICBAZWFjaCAkZWFzaW5nIGluIG1hcC1rZXlzKCRtb3Rpb24tdGltaW5ncykge1xyXG4gICAgLiN7JGVhc2luZ30ge1xyXG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbWFwLWdldCgkbW90aW9uLXRpbWluZ3MsICRlYXNpbmcpICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBEZWxheVxyXG4gIC5kZWxheSAgICAgICB7IHRyYW5zaXRpb24tZGVsYXk6ICRtb3Rpb24tZGVsYXktc2hvcnQgIWltcG9ydGFudDsgfVxyXG4gIC5sb25nLWRlbGF5ICB7IHRyYW5zaXRpb24tZGVsYXk6ICRtb3Rpb24tZGVsYXktbG9uZyAhaW1wb3J0YW50OyB9XHJcblxyXG4gIC8qXHJcbiAgICBBbmltYXRpb25zXHJcbiAgKi9cclxuXHJcbiAgLnNoYWtlICAgIHsgQGluY2x1ZGUgYW5pbWF0aW9uKHNoYWtlKTsgfVxyXG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIGFuaW1hdGlvbihzcGluLWN3KTsgfVxyXG4gIC5zcGluLWNjdyB7IEBpbmNsdWRlIGFuaW1hdGlvbihzcGluLWNjdyk7IH1cclxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBhbmltYXRpb24od2lnZ2xlKTsgfVxyXG5cclxuICAvKlxyXG4gICAgQW5pbWF0aW9uIG1vZGlmaWVyc1xyXG4gICovXHJcblxyXG4gIC5zaGFrZSxcclxuICAuc3Bpbi1jdyxcclxuICAuc3Bpbi1jY3csXHJcbiAgLndpZ2dsZSB7XHJcbiAgICAvLyBSZXBlYXRcclxuICAgICYuaW5maW5pdGUgeyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxyXG5cclxuICAgIC8vIEVhc2luZ1xyXG4gICAgQGVhY2ggJHRpbWluZyBpbiBtYXAta2V5cygkbW90aW9uLXRpbWluZ3MpIHtcclxuICAgICAgJi4jeyR0aW1pbmd9IHtcclxuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdGltaW5ncywgJHRpbWluZykgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIER1cmF0aW9uXHJcbiAgICAmLnNsb3cgeyBhbmltYXRpb24tZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tc2xvdyAhaW1wb3J0YW50OyB9XHJcbiAgICAmLmZhc3QgeyBhbmltYXRpb24tZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tZmFzdCAhaW1wb3J0YW50OyB9XHJcblxyXG4gICAgLy8gRGVsYXlcclxuICAgICYuZGVsYXkgICAgICAgeyBhbmltYXRpb24tZGVsYXk6ICRtb3Rpb24tZGVsYXktc2hvcnQgIWltcG9ydGFudDsgfVxyXG4gICAgJi5sb25nLWRlbGF5ICB7IGFuaW1hdGlvbi1kZWxheTogJG1vdGlvbi1kZWxheS1sb25nICFpbXBvcnRhbnQ7IH1cclxuICB9XHJcbiAgLnN0YWdnZXIgeyBAaW5jbHVkZSBzdGFnZ2VyKCRtb3Rpb24tc3RhZ2dlci1kdXJhdGlvbi1kZWZhdWx0KTsgfVxyXG4gIC5zdG9ydC1zdGFnZ2VyIHsgQGluY2x1ZGUgc3RhZ2dlcigkbW90aW9uLXN0YWdnZXItZHVyYXRpb24tZGVmYXVsdCk7IH1cclxuICAubG9uZy1zdGFnZ2VyIHsgQGluY2x1ZGUgc3RhZ2dlcigkbW90aW9uLXN0YWdnZXItZHVyYXRpb24tZGVmYXVsdCk7IH1cclxufVxyXG5cclxuLy8gVmlldyBhbmltYXRpb24gY2xhc3Nlc1xyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuXHJcbi8vIEFwcGxpZWQgdG8gdGhlIGltbWVkaWF0ZSBwYXJlbnQgb2YgdGhlIGFuaW1hdGluZyB2aWV3c1xyXG4ucG9zaXRpb24tYWJzb2x1dGUge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4vLyBBcHBsaWVkIHRvIHRoZSBhbmltYXRpbmcgdmlld3NcclxuLnVpLWFuaW1hdGlvbiB7XHJcbiAgJi5uZy1lbnRlci1hY3RpdmUsICYubmctbGVhdmUtYWN0aXZlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gIH1cclxufVxyXG4iLCIvKlxuICBPZGRzIGFuZCBlbmRzLlxuKi9cblxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXG4vLyBFeHRyYXNcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogKHRvcCByaWdodCkgIWRlZmF1bHQ7XG4kY2xvc2VidXR0b24tc2l6ZTogMmVtICFkZWZhdWx0O1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDAuNSAhZGVmYXVsdDtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogIzk5OSAhZGVmYXVsdDtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogIzMzMyAhZGVmYXVsdDtcblxuJHRodW1ibmFpbC1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAzcHggMTVweCByZ2JhKGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcbi8vL1xuXG4vLyBBIGJhc2ljIGNsb3NlIGJ1dHRvbi4gVGhleSBwaW4gdG8gdGhlIGNvcm5lciBvZiB0aGUgdGhpbmcgdGhleSdyZSBpbnNpZGUuXG4lY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICAjeyR4fTogJGdsb2JhbC1wYWRkaW5nO1xuICAjeyR5fTogJGdsb2JhbC1wYWRkaW5nO1xuICBmb250LXNpemU6ICRjbG9zZWJ1dHRvbi1zaXplO1xuICBsaW5lLWhlaWdodDogJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vIE1ha2UgeW91ciBpbWFnZXMgZmFuY3ktbGlrZS5cbiV0aHVtYm5haWwge1xuICBwYWRkaW5nOiAkdGh1bWJuYWlsLXBhZGRpbmc7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKGV4dHJhcykge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVjbG9zZS1idXR0b247XG4gIH1cbiAgLnRodW1ibmFpbCB7XG4gICAgQGV4dGVuZCAldGh1bWJuYWlsO1xuICB9XG4gIHVsLnRodW1ibmFpbHMgPiBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBcbiAgICBhIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICBpbWcgeyBAZXh0ZW5kICV0aHVtYm5haWw7IH1cbiAgfVxufVxuIiwiLypcbiAgUEFORUxcbiAgLS0tLS1cblxuICBUaGUgZnJpZW5kbHkgcGFuZWwgaXMgYW4gYWxsLXB1cnBvc2UgY29udGFpbmVyIGZvciBoaWRpbmcgY29udGVudCBvZmYtc2NyZWVuLlxuXG4gIEZlYXR1cmVzOlxuICAgLSBQb3NpdGlvbiBhdCB0b3AsIHJpZ2h0LCBib3R0b20sIG9yIGxlZnRcbiAgIC0gQW5jaG9yIHRvIGdyaWQgYmxvY2sgb3Igd2luZG93XG4gICAtIERlZmluZSBtYXggd2lkdGggb3IgaGVpZ2h0XG4gICAtIFRyYW5zZm9ybSBpbnRvIGdyaWQgYmxvY2sgZGVwZW5kaW5nIG9uIHNjcmVlbiBzaXplXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIFBhbmVsXG4kcGFuZWwtc2l6ZS1ob3Jpem9udGFsOiAzMDBweCAhZGVmYXVsdDtcbiRwYW5lbC1zaXplLXZlcnRpY2FsOiAzMDBweCAhZGVmYXVsdDtcbiRwYW5lbC1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4kcGFuZWwtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcbiRwYW5lbC1zaGFkb3c6IDNweCAwIDEwcHggcmdiYShibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vIERFUFJFQ0FURUQ6IHRoZXNlIHZhcmlhYmxlcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiRwYW5lbC1hbmltYXRpb24tc3BlZWQ6IDAuMjVzICFkZWZhdWx0O1xuLy8vXG5cbiVwYW5lbC1iYXNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gcGFuZWwtbGF5b3V0KFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRzaXplOiBkZWZhdWx0LFxuICAkc2hhZG93OiAkcGFuZWwtc2hhZG93XG4pIHtcbiAgQGlmICRzaXplID09IGRlZmF1bHQge1xuICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCBvciAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgJHNpemU6ICRwYW5lbC1zaXplLWhvcml6b250YWw7XG4gICAgfVxuICAgIEBpZiAkcG9zaXRpb24gPT0gdG9wIG9yICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgJHNpemU6ICRwYW5lbC1zaXplLXZlcnRpY2FsO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAgRGlyZWN0aW9uXG4gICovXG4gIEBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC8qXG4gICAgU2l6aW5nXG4gICovXG4gIC8vIEhvcml6b250YWwgcGFuZWxzIGFyZSBhbHdheXMgYWxsIHRoZSB3YXkgdGFsbCBhbmQgaGF2ZSBhIHNldCB3aWR0aFxuICBAaWYgJHBvc2l0aW9uID09IGxlZnQgb3IgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBAaWYgdW5pdCgkc2l6ZSkgPT0gJyUnIHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gKEZvciBub3cpIHZlcnRpY2FsIHBhbmVscyBkb24ndCBjaGFuZ2Ugc2l6ZVxuICBAaWYgJHBvc2l0aW9uID09IHRvcCBvciAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICB9XG5cbiAgLypcbiAgICBTaGFkb3dzXG4gICovXG4gICRzaGFkb3ctZGlzdGFuY2U6IGdldC1zaGFkb3ctdmFsdWUoJHNoYWRvdywgeCk7XG4gICRzaGFkb3ctc2l6ZTogZ2V0LXNoYWRvdy12YWx1ZSgkc2hhZG93LCBzaXplKTtcbiAgJHNoYWRvdy1jb2xvcjogZ2V0LXNoYWRvdy12YWx1ZSgkc2hhZG93LCBjb2xvcik7XG4gICYuaXMtYWN0aXZlIHtcbiAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQgICAgICAgIHsgYm94LXNoYWRvdzogJHNoYWRvdy1kaXN0YW5jZSAwICRzaGFkb3ctc2l6ZSAkc2hhZG93LWNvbG9yOyB9XG4gICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0ICB7IGJveC1zaGFkb3c6ICgtJHNoYWRvdy1kaXN0YW5jZSkgMCAkc2hhZG93LXNpemUgJHNoYWRvdy1jb2xvcjsgfVxuICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3AgICAgeyBib3gtc2hhZG93OiAwICRzaGFkb3ctZGlzdGFuY2UgJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cbiAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHsgYm94LXNoYWRvdzogMnB4ICgtJHNoYWRvdy1kaXN0YW5jZSkgJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cbiAgfVxufVxuXG5AbWl4aW4gcGFuZWwtc3R5bGUoXG4gICRwYWRkaW5nOiAkcGFuZWwtcGFkZGluZyxcbiAgJGJhY2tncm91bmQ6ICRwYW5lbC1iYWNrZ3JvdW5kXG4pIHtcbiAgLypcbiAgICBCYXNpYyBzdHlsZXNcbiAgKi9cbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKHBhbmVsKSB7XG4gIC5wYW5lbCB7XG4gICAgQGV4dGVuZCAlcGFuZWwtYmFzZTtcbiAgICBAaW5jbHVkZSBwYW5lbC1zdHlsZTtcbiAgfVxuXG4gIC5wYW5lbC10b3AgICAgeyBAaW5jbHVkZSBwYW5lbC1sYXlvdXQodG9wKTsgfVxuICAucGFuZWwtcmlnaHQgIHsgQGluY2x1ZGUgcGFuZWwtbGF5b3V0KHJpZ2h0KTsgfVxuICAucGFuZWwtYm90dG9tIHsgQGluY2x1ZGUgcGFuZWwtbGF5b3V0KGJvdHRvbSk7IH1cbiAgLnBhbmVsLWxlZnQgICB7IEBpbmNsdWRlIHBhbmVsLWxheW91dChsZWZ0KTsgfVxuXG4gIC5wYW5lbC1maXhlZCAgeyBwb3NpdGlvbjogZml4ZWQ7IH1cbn0iLCIvKlxyXG4gIExhYmVsXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gTGFiZWxcclxuJGxhYmVsLWZvbnRzaXplOiAwLjhyZW0gIWRlZmF1bHQ7XHJcbiRsYWJlbC1wYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nIC8gMykgKCRnbG9iYWwtcGFkZGluZyAvIDIpICFkZWZhdWx0O1xyXG4kbGFiZWwtcmFkaXVzOiAwICFkZWZhdWx0O1xyXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRsYWJlbC1jb2xvcjogaXNpdGxpZ2h0KCRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcclxuXHJcbiRiYWRnZS1mb250c2l6ZTogMC44ZW0gIWRlZmF1bHQ7XHJcbiRiYWRnZS1kaWFtZXRlcjogMS41cmVtICFkZWZhdWx0O1xyXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRiYWRnZS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcclxuLy8vXHJcblxyXG4lbGFiZWwge1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG5cclxuQG1peGluIGxhYmVsLWxheW91dChcclxuICAkZm9udHNpemU6ICRsYWJlbC1mb250c2l6ZSxcclxuICAkcGFkZGluZzogJGxhYmVsLXBhZGRpbmdcclxuKSB7XHJcbiAgZm9udC1zaXplOiAkZm9udHNpemU7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbn1cclxuXHJcbkBtaXhpbiBsYWJlbC1zdHlsZShcclxuICAkYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQsXHJcbiAgJGNvbG9yOiAkbGFiZWwtY29sb3IsXHJcbiAgJHJhZGl1czogJGxhYmVsLXJhZGl1c1xyXG4pIHtcclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG5cclxuICBAaWYgJGNvbG9yID09IGF1dG8ge1xyXG4gICAgY29sb3I6IGlzaXRsaWdodCgkYmFja2dyb3VuZCk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGFiZWwoXHJcbiAgJGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogJGxhYmVsLWNvbG9yLFxyXG4gICRyYWRpdXM6ICRsYWJlbC1yYWRpdXMsXHJcbiAgJGZvbnRzaXplOiAkbGFiZWwtZm9udHNpemUsXHJcbiAgJHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nXHJcbikge1xyXG4gIEBleHRlbmQgJWxhYmVsO1xyXG4gIEBpbmNsdWRlIGxhYmVsLWxheW91dCgkZm9udHNpemUsICRwYWRkaW5nKTtcclxuICBAaW5jbHVkZSBsYWJlbC1zdHlsZSgkYmFja2dyb3VuZCwgJGNvbG9yLCAkcmFkaXVzKTtcclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhsYWJlbCkge1xyXG4gIC5sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBsYWJlbDtcclxuXHJcbiAgICBAZWFjaCAkY29sb3IgaW4gbWFwLWtleXMoJGZvdW5kYXRpb24tY29sb3JzKSB7XHJcbiAgICAgICYuI3skY29sb3J9IHtcclxuICAgICAgICAkY29sb3ItdmFsdWU6IG1hcC1nZXQoJGZvdW5kYXRpb24tY29sb3JzLCAkY29sb3IpO1xyXG4gICAgICAgIEBpbmNsdWRlIGxhYmVsLXN0eWxlKCRjb2xvci12YWx1ZSwgYXV0byk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qXHJcbiAgQmFkZ2VcclxuKi9cclxuXHJcbiViYWRnZSB7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XHJcbn1cclxuXHJcbkBtaXhpbiBiYWRnZS1sYXlvdXQoXHJcbiAgJGZvbnRzaXplOiAkYmFkZ2UtZm9udHNpemUsXHJcbiAgJGRpYW1ldGVyOiAkYmFkZ2UtZGlhbWV0ZXJcclxuKSB7XHJcbiAgZm9udC1zaXplOiAkZm9udHNpemU7XHJcbiAgd2lkdGg6ICRkaWFtZXRlcjtcclxuICBoZWlnaHQ6ICRkaWFtZXRlcjtcclxufVxyXG5cclxuQG1peGluIGJhZGdlLXN0eWxlKFxyXG4gICRiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZCxcclxuICAkY29sb3I6ICRiYWRnZS1mb250LWNvbG9yXHJcbikge1xyXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG5cclxuICBAaWYgJGNvbG9yID09IGF1dG8ge1xyXG4gICAgY29sb3I6IGlzaXRsaWdodCgkYmFja2dyb3VuZCk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gYmFkZ2UoXHJcbiAgJGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogJGJhZGdlLWNvbG9yLFxyXG4gICRkaWFtZXRlcjogJGJhZGdlLWRpYW1ldGVyLFxyXG4gICRmb250c2l6ZTogJGJhZGdlLWZvbnRzaXplXHJcbikge1xyXG4gIEBleHRlbmQgJWJhZGdlO1xyXG4gIEBpbmNsdWRlIGJhZGdlLWxheW91dCgkZm9udHNpemUsICRkaWFtZXRlcik7XHJcbiAgQGluY2x1ZGUgYmFkZ2Utc3R5bGUoJGJhY2tncm91bmQsICRjb2xvcik7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoYmFkZ2UpIHtcclxuICAuYmFkZ2Uge1xyXG4gICAgQGluY2x1ZGUgYmFkZ2U7XHJcblxyXG4gICAgJi5zZWNvbmRhcnkge1xyXG4gICAgICBAaW5jbHVkZSBiYWRnZS1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yLCBhdXRvKTtcclxuICAgIH1cclxuICAgIEBlYWNoICRjb2xvciBpbiBtYXAta2V5cygkZm91bmRhdGlvbi1jb2xvcnMpIHtcclxuICAgICAgJi4jeyRjb2xvcn0ge1xyXG4gICAgICAgICRjb2xvci12YWx1ZTogbWFwLWdldCgkZm91bmRhdGlvbi1jb2xvcnMsICRjb2xvcik7XHJcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2Utc3R5bGUoJGNvbG9yLXZhbHVlLCBhdXRvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKlxyXG4gIE1PREFMXHJcbiAgLS0tLS1cclxuXHJcbiAgVGhlIGh1bWJsZSBtb2RhbCBoaWRlcyBvZmYtY2FudmFzIHVudGlsIHN1bW1vbmVkIHdpdGggYW4gZmEtb3BlbiBkaXJlY3RpdmUuIE1vZGFscyBhcHBlYXIgb3ZlciBhbiBvdmVybGF5IHRoYXQgZGFya2VucyB0aGUgcmVzdCBvZiB0aGUgcGFnZSwgYW5kIGhhdmUgYSBtYXhtaW11bSB3aWR0aC4gWW91IGNhbiBjb25zdHJ1Y3QgYSBncmlkIGluc2lkZSBhIG1vZGFsLCBvciBhdHRhY2ggcGFuZWxzIHRvIGl0LlxyXG5cclxuICBOb3RlIHRoYXQgdGhlIG1vZGFsIG92ZXJsYXkgaXMgaGFyZGNvZGVkIGludG8gdGhlIENTUywgYmVjYXVzZSB3aGV0aGVyIG9yIG5vdCB5b3UgYnVpbGQgeW91ciBtb2RhbCBzZW1hbnRpY2FsbHksIHRoZSBvdmVybGF5IGlzIGFsd2F5cyByZXF1aXJlZCBhbmQgd2lsbCBhbHdheXMgbG9vayB0aGUgc2FtZS5cclxuKi9cclxuXHJcbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xyXG4vLyBNb2RhbFxyXG4kbW9kYWwtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcclxuJG1vZGFsLWJvcmRlcjogMCAhZGVmYXVsdDtcclxuJG1vZGFsLXJhZGl1czogMHB4ICFkZWZhdWx0O1xyXG4kbW9kYWwtc2hhZG93OiBub25lICFkZWZhdWx0O1xyXG4kbW9kYWwtemluZGV4OiAxMDAwICFkZWZhdWx0O1xyXG4kbW9kYWwtc2l6ZXM6IChcclxuICB0aW55OiAzMDBweCxcclxuICBzbWFsbDogNTAwcHgsXHJcbiAgbWVkaXVtOiA2MDBweCxcclxuICBsYXJnZTogODAwcHgsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4kbW9kYWwtb3ZlcmxheS1jbGFzczogJ21vZGFsLW92ZXJsYXknICFkZWZhdWx0O1xyXG4kbW9kYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCMzMzMsIDAuNykgIWRlZmF1bHQ7XHJcbi8vL1xyXG5cclxuJW1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogJG1vZGFsLXppbmRleCArIDE7XHJcbiAgYmFja2dyb3VuZDogJG1vZGFsLWJhY2tncm91bmQ7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgbWF4LXdpZHRoOiBtYXAtZ2V0KCRtb2RhbC1zaXplcywgbWVkaXVtKTtcclxuICB9XHJcblxyXG4gIC5ncmlkLWNvbnRlbnQsIC5ncmlkLWJsb2NrIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24sIFtmYS1jbG9zZV0ge1xyXG4gICAgei1pbmRleDogJG1vZGFsLXppbmRleCArIDE7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbW9kYWwtZGlhbG9nKCkge1xyXG4gIGhlaWdodDogYXV0bztcclxufVxyXG5AbWl4aW4gbW9kYWwtbGF5b3V0KFxyXG4gICR3aWR0aDogbWFwLWdldCgkbW9kYWwtc2l6ZXMsIG1lZGl1bSksXHJcbiAgJGRpYWxvZzogZmFsc2VcclxuKSB7XHJcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbn1cclxuQG1peGluIG1vZGFsLXN0eWxlKFxyXG4gICRib3JkZXI6ICRtb2RhbC1ib3JkZXIsXHJcbiAgJHJhZGl1czogJG1vZGFsLXJhZGl1cyxcclxuICAkc2hhZG93OiAkbW9kYWwtc2hhZG93XHJcbikge1xyXG4gIEBpZiAkYm9yZGVyICE9IDAge1xyXG4gICAgYm9yZGVyOiAkYm9yZGVyO1xyXG4gIH1cclxuICBAaWYgJHJhZGl1cyAhPSAwIHtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgfVxyXG4gIEBpZiAkc2hhZG93ICE9IG5vbmUge1xyXG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtb2RhbChcclxuICAkd2lkdGg6IG1hcC1nZXQoJG1vZGFsLXNpemVzLCBtZWRpdW0pLFxyXG4gICRib3JkZXI6ICRtb2RhbC1ib3JkZXIsXHJcbiAgJHJhZGl1czogJG1vZGFsLXJhZGl1cyxcclxuICAkc2hhZG93OiAkbW9kYWwtc2hhZG93XHJcbikge1xyXG4gIEBleHRlbmQgJW1vZGFsO1xyXG4gIEBpbmNsdWRlIG1vZGFsLWxheW91dCgkd2lkdGgpO1xyXG4gIEBpbmNsdWRlIG1vZGFsLXN0eWxlKCRib3JkZXIsICRyYWRpdXMsICRzaGFkb3cpO1xyXG59XHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKG1vZGFsKSB7XHJcbiAgLm1vZGFsIHtcclxuICAgIEBpbmNsdWRlIG1vZGFsO1xyXG5cclxuICAgIEBlYWNoICRzaXplIGluIG1hcC1rZXlzKCRtb2RhbC1zaXplcykge1xyXG4gICAgICAkd2lkdGg6IG1hcC1nZXQoJG1vZGFsLXNpemVzLCAkc2l6ZSk7XHJcbiAgICAgIEBpZiAkc2l6ZSAhPSBtZWRpdW0ge1xyXG4gICAgICAgIC4jeyRzaXplfSA+ICYgeyBAaW5jbHVkZSBtb2RhbC1sYXlvdXQoJHdpZHRoKTsgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmRpYWxvZyA+ICYge1xyXG4gICAgICBAaW5jbHVkZSBtb2RhbC1kaWFsb2c7XHJcbiAgICB9XHJcbiAgICAuY29sbGFwc2UgPiAmIHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC4jeyRtb2RhbC1vdmVybGF5LWNsYXNzfSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiAkbW9kYWwtemluZGV4O1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbC1vdmVybGF5LWJhY2tncm91bmQ7XHJcblxyXG4gICAgLy8gSG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IGNlbnRlciB0aGUgbW9kYWxcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qXHJcbiAgU1dJVENIXHJcbiAgLS0tLS0tXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gU3dpdGNoXHJcbiRzd2l0Y2gtd2lkdGg6IHJlbS1jYWxjKDUwKSAhZGVmYXVsdDtcclxuJHN3aXRjaC1oZWlnaHQ6IHJlbS1jYWxjKDMyKSAhZGVmYXVsdDtcclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAjY2NjICFkZWZhdWx0O1xyXG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuJHN3aXRjaC1ib3JkZXI6IDAgIWRlZmF1bHQ7XHJcbiRzd2l0Y2gtcmFkaXVzOiA5OTk5cHggIWRlZmF1bHQ7XHJcbiRzd2l0Y2gtYW5pbWF0aW9uLXNwZWVkOiAwLjE1cyAhZGVmYXVsdDtcclxuXHJcbiRzd2l0Y2gtcGFkZGxlLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiA0cHggIWRlZmF1bHQ7XHJcbi8vL1xyXG5cclxuJXN3aXRjaCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICA+IGlucHV0IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC05OTk5cHg7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuXHJcbiAgPiBsYWJlbCB7XHJcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XHJcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgIC8vIFBhZGRsZVxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLypcclxuICBEZWZpbmVzIHRoZSBkaW1tZW5zaW9ucyBvZiB0aGUgc3dpdGNoLlxyXG5cclxuICAkd2lkdGggLSB3aWR0aCBvZiB0aGUgc3dpdGNoLlxyXG4gICRoZWlnaHQgLSBoZWlnaHQgb2YgdGhlIHN3aXRjaC5cclxuKi9cclxuQG1peGluIHN3aXRjaC1sYXlvdXQoXHJcbiAgJHdpZHRoOiAkc3dpdGNoLXdpZHRoLFxyXG4gICRoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0XHJcbikge1xyXG4gIHdpZHRoOiAkd2lkdGg7XHJcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG5cclxuICA+IGxhYmVsIHtcclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgd2lkdGg6ICRoZWlnaHQ7XHJcbiAgICAgIGhlaWdodDogJGhlaWdodDtcclxuICAgIH1cclxuICB9XHJcbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgbGVmdDogJHdpZHRoIC0gJGhlaWdodDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzd2l0Y2gtc3R5bGUoXHJcbiAgJGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZCxcclxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmUsXHJcbiAgJGJvcmRlcjogJHN3aXRjaC1ib3JkZXIsXHJcbiAgJHJhZGl1czogJHN3aXRjaC1yYWRpdXMsXHJcbiAgJHBhZGRsZS1jb2xvcjogJHN3aXRjaC1wYWRkbGUtY29sb3IsXHJcbiAgJHBhZGRsZS1vZmZzZXQ6ICRzd2l0Y2gtcGFkZGxlLW9mZnNldCxcclxuICAkYW5pbWF0aW9uLXNwZWVkOiAkc3dpdGNoLWFuaW1hdGlvbi1zcGVlZFxyXG4pIHtcclxuICBAaWYgaGFzdmFsdWUoJGJvcmRlcikge1xyXG4gICAgYm9yZGVyOiAkYm9yZGVyO1xyXG4gIH1cclxuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG5cclxuICA+IGxhYmVsIHtcclxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgYmFja2dyb3VuZDogJHBhZGRsZS1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxuICAgICAgdHJhbnNpdGlvbjogbGVmdCAkYW5pbWF0aW9uLXNwZWVkIGVhc2Utb3V0O1xyXG5cclxuICAgICAgQGlmIGhhc3ZhbHVlKCRwYWRkbGUtb2Zmc2V0KSB7XHJcbiAgICAgICAgYm9yZGVyOiAkcGFkZGxlLW9mZnNldCBzb2xpZCAkYmFja2dyb3VuZFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwge1xyXG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgQGlmIGhhc3ZhbHVlKCRwYWRkbGUtb2Zmc2V0KSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1hY3RpdmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzd2l0Y2goKSB7XHJcbiAgQGV4dGVuZCAlc3dpdGNoO1xyXG4gIEBpbmNsdWRlIHN3aXRjaC1sYXlvdXQ7XHJcbiAgQGluY2x1ZGUgc3dpdGNoLXN0eWxlO1xyXG59XHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKHN3aXRjaCkge1xyXG4gIC5zd2l0Y2gge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoO1xyXG5cclxuICAgICYuc21hbGwgeyBAaW5jbHVkZSBzd2l0Y2gtbGF5b3V0KHJlbS1jYWxjKDQwKSwgcmVtLWNhbGMoMjYpKTsgfVxyXG4gICAgJi5sYXJnZSB7IEBpbmNsdWRlIHN3aXRjaC1sYXlvdXQocmVtLWNhbGMoNjApLCByZW0tY2FsYygzOCkpOyB9XHJcbiAgfVxyXG59XHJcbiIsIi8qXHJcbiAgVEFCU1xyXG4gIC0tLS1cclxuKi9cclxuXHJcbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xyXG4vLyBUYWJzXHJcbiR0YWJzdHJpcC1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuXHJcbiR0YWItdGl0bGUtYmFja2dyb3VuZDogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XHJcbiR0YWItdGl0bGUtYmFja2dyb3VuZC1ob3Zlcjogc21hcnRzY2FsZSgkdGFiLXRpdGxlLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJHRhYi10aXRsZS1iYWNrZ3JvdW5kLWFjdGl2ZTogc21hcnRzY2FsZSgkdGFiLXRpdGxlLWJhY2tncm91bmQsIDMlKSAhZGVmYXVsdDtcclxuJHRhYi10aXRsZS1jb2xvcjogaXNpdGxpZ2h0KCR0YWItdGl0bGUtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XHJcbiR0YWItdGl0bGUtY29sb3ItYWN0aXZlOiAkdGFiLXRpdGxlLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJHRhYi10aXRsZS1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcbiR0YWItY29udGVudC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcbi8vL1xyXG5cclxuQG1peGluIHRhYnN0cmlwKFxyXG5cdCRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcclxuXHQkYmFja2dyb3VuZDogJHRhYnN0cmlwLWJhY2tncm91bmRcclxuKSB7XHJcblx0LypcclxuXHRcdENvbnRhaW5lciBzdHlsZXNcclxuXHQqL1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0YmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcblxyXG5cdEBpZiAkb3JpZW50YXRpb24gPT0gdmVydGljYWwge1xyXG5cdCAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xyXG5cdH1cclxuXHRAZWxzZSB7XHJcblx0XHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHRhYnN0cmlwLWl0ZW0oXHJcblx0JGJhY2tncm91bmQ6ICR0YWItdGl0bGUtYmFja2dyb3VuZCxcclxuXHQkYmFja2dyb3VuZC1ob3ZlcjogJHRhYi10aXRsZS1iYWNrZ3JvdW5kLWhvdmVyLFxyXG5cdCRiYWNrZ3JvdW5kLWFjdGl2ZTogJHRhYi10aXRsZS1iYWNrZ3JvdW5kLWFjdGl2ZSxcclxuXHQkY29sb3I6ICR0YWItdGl0bGUtY29sb3IsXHJcblx0JGNvbG9yLWFjdGl2ZTogJHRhYi10aXRsZS1jb2xvci1hY3RpdmUsXHJcblx0JHBhZGRpbmc6ICR0YWItdGl0bGUtcGFkZGluZ1xyXG4pIHtcclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBtYXJnaW46IDA7XHJcbiAgZmxleDogMCAxIGF1dG87XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcclxuICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcclxuICAgIH1cclxuICB9XHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB0YWItY29udGVudChcclxuXHQkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcclxuKSB7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbn1cclxuXHJcbkBtaXhpbiB0YWItY29udGVudC1pdGVtIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyh0YWJzKSB7XHJcbiAgLnRhYnMge1xyXG4gICAgQGluY2x1ZGUgdGFic3RyaXAoaG9yaXpvbnRhbCk7XHJcblxyXG4gICAgJi52ZXJ0aWNhbCB7XHJcbiAgICAgIEBpbmNsdWRlIHRhYnN0cmlwKHZlcnRpY2FsKTtcclxuICAgIH1cclxuXHJcbiAgICAudGFiLWl0ZW0ge1xyXG4gICAgICBAaW5jbHVkZSB0YWJzdHJpcC1pdGVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnRhYi1jb250ZW50cyB7XHJcbiAgICBAaW5jbHVkZSB0YWItY29udGVudDtcclxuXHJcbiAgICAudGFiLWNvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSB0YWItY29udGVudC1pdGVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKlxyXG5cdE9mZi1jYW52YXMgbWVudVxyXG4gIC0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICBBIGdlbmVyaWMgY29udGFpbmVyIHRoYXQgc3RheXMgZml4ZWQgdG8gdGhlIGxlZnQsIHRvcCwgcmlnaHQsIG9yIGJvdHRvbSBvZiB0aGUgc2NyZWVuLCBhbmQgaXMgc3VtbW9uZWQgd2hlbiBuZWVkZWQuIFdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLCB0aGUgYXBwIGZyYW1lIHNoaWZ0cyBvdmVyIHRvIHJldmVhbCB0aGUgbWVudS5cclxuKi9cclxuXHJcbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xyXG4vLyBPZmYtY2FudmFzXHJcbiRvZmZjYW52YXMtc2l6ZS1ob3Jpem9udGFsOiAyNTBweCAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1zaXplLXZlcnRpY2FsOiAyNTBweCAhZGVmYXVsdDtcclxuXHJcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1jb2xvcjogaXNpdGxpZ2h0KCRvZmZjYW52YXMtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtcGFkZGluZzogMCAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1zaGFkb3c6IDNweCAwIDEwcHggcmdiYShibGFjaywgMC4yNSkgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtYW5pbWF0aW9uLXNwZWVkOiAwLjI1cyAhZGVmYXVsdDtcclxuXHJcbiRvZmZjYW52YXMtZnJhbWUtc2VsZWN0b3I6ICcuZ3JpZC1mcmFtZScgIWRlZmF1bHQ7XHJcbi8vL1xyXG5cclxuJW9mZi1jYW52YXMge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtYW5pbWF0aW9uLXNwZWVkIGVhc2Utb3V0O1xyXG4gIHotaW5kZXg6IDI7XHJcblxyXG4gIC8vIEFjdGl2ZSBzdGF0ZVxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC8vIEZyYW1lIHN0eWxlc1xyXG4gICYgfiAjeyRvZmZjYW52YXMtZnJhbWUtc2VsZWN0b3J9IHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCwwKTtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dDtcclxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIH1cclxufVxyXG5AbWl4aW4gb2ZmLWNhbnZhcy1kZXRhY2hlZCB7XHJcbiAgei1pbmRleDogMDtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG5cclxuICAmLCAmLmlzLWFjdGl2ZSB7XHJcbiAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmIH4gI3skb2ZmY2FudmFzLWZyYW1lLXNlbGVjdG9yfSB7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDE1cHggcmdiYSgwLDAsMCwwLjUpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG9mZi1jYW52YXMtbGF5b3V0KFxyXG4gICRwb3NpdGlvbjogbGVmdCxcclxuICAkc2l6ZTogZGVmYXVsdCxcclxuICAkc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvd1xyXG4pIHtcclxuICAvKlxyXG4gICAgR2V0IHNoYWRvdyB2YWx1ZXMgZm9yIGxhdGVyIHVzZVxyXG4gICovXHJcbiAgJHNoYWRvdy1sZW5ndGg6ICcnO1xyXG4gICRzaGFkb3ctc2l6ZTogJyc7XHJcbiAgJHNoYWRvdy1jb2xvcjogJyc7XHJcbiAgQGlmIGhhc3ZhbHVlKCRzaGFkb3cpIHtcclxuICAgICRzaGFkb3ctbGVuZ3RoOiBnZXQtc2hhZG93LXZhbHVlKCRzaGFkb3csIHgpO1xyXG4gICAgJHNoYWRvdy1zaXplOiBnZXQtc2hhZG93LXZhbHVlKCRzaGFkb3csIHNpemUpO1xyXG4gICAgJHNoYWRvdy1jb2xvcjogZ2V0LXNoYWRvdy12YWx1ZSgkc2hhZG93LCBjb2xvcik7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgU2l6aW5nXHJcbiAgKi9cclxuICBAaWYgJHBvc2l0aW9uID09IGxlZnQgb3IgJHBvc2l0aW9uID09IHJpZ2h0IHtcclxuICAgIEBpZiAkc2l6ZSA9PSBkZWZhdWx0IHtcclxuICAgICAgJHNpemU6ICRvZmZjYW52YXMtc2l6ZS1ob3Jpem9udGFsO1xyXG4gICAgfVxyXG4gICAgd2lkdGg6ICRzaXplO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAaWYgJHNpemUgPT0gZGVmYXVsdCB7XHJcbiAgICAgICRzaXplOiAkb2ZmY2FudmFzLXNpemUtdmVydGljYWw7XHJcbiAgICB9XHJcbiAgICBoZWlnaHQ6ICRzaXplO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgUG9zaXRpb25pbmdcclxuICAqL1xyXG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgQGlmIGhhc3ZhbHVlKCRzaGFkb3cpIHsgYm94LXNoYWRvdzogaW5zZXQgKC0kc2hhZG93LWxlbmd0aCkgMCAkc2hhZG93LXNpemUgJHNoYWRvdy1jb2xvcjsgfVxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgJiB+ICN7JG9mZmNhbnZhcy1mcmFtZS1zZWxlY3Rvcn0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpICFpbXBvcnRhbnQ7IH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcclxuICAgIGxlZnQ6IGF1dG87XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIEBpZiBoYXN2YWx1ZSgkc2hhZG93KSB7IGJveC1zaGFkb3c6IGluc2V0ICRzaGFkb3ctbGVuZ3RoIDAgJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgJiB+ICN7JG9mZmNhbnZhcy1mcmFtZS1zZWxlY3Rvcn0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKSAhaW1wb3J0YW50OyB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XHJcbiAgICBAaWYgaGFzdmFsdWUoJHNoYWRvdykgeyBib3gtc2hhZG93OiBpbnNldCAwICgtJHNoYWRvdy1sZW5ndGgpICRzaGFkb3ctc2l6ZSAkc2hhZG93LWNvbG9yOyB9XHJcbiAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgICYgfiAjeyRvZmZjYW52YXMtZnJhbWUtc2VsZWN0b3J9IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKSAhaW1wb3J0YW50OyB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xyXG4gICAgdG9wOiBhdXRvO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcclxuICAgIEBpZiBoYXN2YWx1ZSgkc2hhZG93KSB7IGJveC1zaGFkb3c6IGluc2V0IDAgJHNoYWRvdy1sZW5ndGggJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgJiB+ICN7JG9mZmNhbnZhcy1mcmFtZS1zZWxlY3Rvcn0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKSAhaW1wb3J0YW50OyB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gb2ZmLWNhbnZhcy1zdHlsZShcclxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxyXG4gICRjb2xvcjogJG9mZmNhbnZhcy1jb2xvcixcclxuICAkcGFkZGluZzogJG9mZmNhbnZhcy1wYWRkaW5nXHJcbikge1xyXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG5cclxuICBAaWYgJGNvbG9yID09IGF1dG8ge1xyXG4gICAgY29sb3I6IGlzaXRsaWdodCgkYmFja2dyb3VuZCwgIzAwMCwgI2ZmZik7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG5cclxuICBAaWYgaGFzdmFsdWUoJHBhZGRpbmcpIHtcclxuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhvZmYtY2FudmFzKSB7XHJcbiAgLm9mZi1jYW52YXMge1xyXG4gICAgQGV4dGVuZCAlb2ZmLWNhbnZhcztcclxuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtbGF5b3V0O1xyXG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1zdHlsZTtcclxuXHJcbiAgICAmLnRvcCAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtbGF5b3V0KHRvcCk7IH1cclxuICAgICYucmlnaHQgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1sYXlvdXQocmlnaHQpOyB9XHJcbiAgICAmLmJvdHRvbSB7IEBpbmNsdWRlIG9mZi1jYW52YXMtbGF5b3V0KGJvdHRvbSk7IH1cclxuICAgICYubGVmdCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1sYXlvdXQobGVmdCk7IH1cclxuXHJcbiAgICAmLmRldGFjaGVkIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1kZXRhY2hlZDsgfVxyXG5cclxuICAgICYucHJpbWFyeSB7IEBpbmNsdWRlIG9mZi1jYW52YXMtc3R5bGUoJHByaW1hcnktY29sb3IsIGF1dG8pOyB9XHJcbiAgICAmLmRhcmsgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXN0eWxlKCRkYXJrLWNvbG9yLCBhdXRvKTsgfVxyXG4gIH1cclxufVxyXG4iLCIvKlxyXG4gIEFDQ09SRElPTlxyXG4gIC0tLS0tLS0tLVxyXG5cclxuICBUaGUgdHJ1c3kgYWNjb3JkaW9uIGFsbG93cyB5b3UgdG8gY3JlYXRlIGEgc2VyaWVzIG9mIHZlcnRpY2FsIHRhYnMuXHJcbiovXHJcblxyXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3NcclxuLy8gQWNjb3JkaW9uXHJcbiRhY2NvcmRpb24tYm9yZGVyOiAxcHggc29saWQgJGdyYXktZGFyayAhZGVmYXVsdDtcclxuXHJcbiRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZDogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XHJcbiRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZC1ob3Zlcjogc21hcnRzY2FsZSgkYWNjb3JkaW9uLXRpdGxlLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kLWFjdGl2ZTogc21hcnRzY2FsZSgkYWNjb3JkaW9uLXRpdGxlLWJhY2tncm91bmQsIDMlKSAhZGVmYXVsdDtcclxuJGFjY29yZGlvbi10aXRsZS1jb2xvcjogaXNpdGxpZ2h0KCRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XHJcbiRhY2NvcmRpb24tdGl0bGUtY29sb3ItYWN0aXZlOiBpc2l0bGlnaHQoJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcclxuXHJcbiRhY2NvcmRpb24tdGl0bGUtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xyXG4vLy9cclxuXHJcbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUoXHJcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZCxcclxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kLWhvdmVyLFxyXG4gICRiYWNrZ3JvdW5kLWFjdGl2ZTogJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kLWFjdGl2ZSxcclxuICAkY29sb3I6ICRhY2NvcmRpb24tdGl0bGUtY29sb3IsXHJcbiAgJGNvbG9yLWFjdGl2ZTogJGFjY29yZGlvbi10aXRsZS1jb2xvci1hY3RpdmUsXHJcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tdGl0bGUtcGFkZGluZ1xyXG4pIHtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcclxuICB9XHJcblxyXG4gIC5pcy1hY3RpdmUgPiAmIHtcclxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcclxuICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGFjY29yZGlvbi1jb250ZW50KFxyXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZ1xyXG4pIHtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuXHJcbiAgZGlzcGxheTogbm9uZTtcclxuICAuaXMtYWN0aXZlID4gJiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoYWNjb3JkaW9uKSB7XHJcbiAgLmFjY29yZGlvbiB7XHJcbiAgICBAaWYgaGFzdmFsdWUoJGFjY29yZGlvbi1ib3JkZXIpIHtcclxuICAgICAgYm9yZGVyOiAkYWNjb3JkaW9uLWJvcmRlcjtcclxuICAgIH1cclxuICB9XHJcbiAgICAuYWNjb3JkaW9uLWl0ZW0ge1xyXG5cclxuICAgIH1cclxuICAgIC5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XHJcbiAgICB9XHJcbiAgICAuYWNjb3JkaW9uLWNvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudDtcclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */ diff --git a/afm-client/dist.prod/global_styles/ibz-global.min.css b/afm-client/dist.prod/global_styles/ibz-global.min.css new file mode 100644 index 0000000..ed50be1 --- /dev/null +++ b/afm-client/dist.prod/global_styles/ibz-global.min.css @@ -0,0 +1,2 @@ +submit-button{float:right;display:inline-block;border:1px solid #676767;box-shadow:2px 2px 1px gray;color:grey;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem;background:#d1d1e0}submit-button i{padding-right:.3rem;font-size:2rem}submit-button span{font-size:1rem}submit-button:hover{background:#f3f3f3;border:2px solid #4d4d4d}zf-modal{background-color:rgba(180,180,180,.5)}.box-content{border:2px solid #dcdcdc!important;border-radius:5px;min-width:98%!important;margin:.5rem;background:rgba(200,205,200,.3)}.box-content .box-title{display:block;font-size:1.3rem}.ui-notification{width:auto;border-radius:5px}.ibz-right{float:right!important}.ibz-left{float:left!important} +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9pYnotZ2xvYmFsLnNjc3MiLCJhcHAvX2liei1taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmEsY0FDVCxNQUFPLE1DRFAsUUFBUyxhQUNULE9BQVcsSUFBTSxNQUFDLFFBQ2xCLFdBQWUsSUFBSSxJQUFJLElBQUMsS0FDeEIsTUREb0IsS0NFcEIsY0FBZSxJQUNmLFdBQVksT0FDWixRQUFTLEVBQUEsTUFDVCxPQUFPLE1BQ1AsV0FBWSxRQUNYLGdCQUNHLGNBQWUsTUFDZixVQVp5QixLQWN6QixtQkFBRSxVQUFXLEtBRVYsb0JBQ0wsV0FBWSxRQUNaLE9BQVcsSUFBTSxNQUFDLFFEWmhCLFNBQ04saUJBQWtCLHFCQUdSLGFDcEJSLE9BQVEsSUFBQSxNQUFBLGtCQUNSLGNBQWUsSUFJZixVQUFXLGNBQ1gsT0FBUSxNQUNSLFdBQVkscUJEZ0JGLHdCQUNOLFFBQVMsTUFDVCxVQUFXLE9BS0gsaUJBQ1osTUFBTyxLQUNQLGNBQWUsSUFHVCxXQUNOLE1BQU8sZ0JBR0YsVUFDTCxNQUFPIiwiZmlsZSI6ImFwcC9pYnotZ2xvYmFsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbkF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuXG5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4oYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG5NRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG5Zb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4qL1xuXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuc3VibWl0LWJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIEBpbmNsdWRlIGliei1idXR0b24oZ3JleSk7XG59XG5cbnpmLW1vZGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODAsMTgwLDE4MCwuNSk7XG59XG5cbi5ib3gtY29udGVudCB7XG4gICAgIEBpbmNsdWRlIGliei1ib3gtY29udGVudDtcblxuICAgIC5ib3gtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgfVxufVxuXG4vLyBDaGFuZ2UgTm90aWZpY2F0aW9ucyBkZWZhdWx0IHNpemVcbi51aS1ub3RpZmljYXRpb24ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmliei1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi5pYnotbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn0iLCIvKlxuICAgIEV2ZXJ5IFNDU1MgZmlsZXMgd2lsbCBiZSBpbmplY3RlZCBpbnRvIG1haW4gSFRNTCBwYWdlXG4qL1xuJXNoYWRvdy10cmFuc2l0aW9uIHtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBsaW5lYXIgMHMsIGJveC1zaGFkb3cgMC4ycyBsaW5lYXIgMHM7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG5AbWl4aW4gaWJ6LWJveC1jb250ZW50IHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBnYWluc2Jvcm8gIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1pbi13aWR0aDogOTglICFpbXBvcnRhbnQ7IFxuICAgIG1hcmdpbjogLjVyZW0gLjVyZW0gLjVyZW0gLjVyZW07XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMDAsMjA1LDIwMCwuMyk7XG59XG5cbkBtaXhpbiBpYnotYnV0dG9uICgkY29sb3IsICRzaXplOjJyZW0pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRjb2xvciwxMCUpO1xuICAgIGJveC1zaGFkb3c6IDJweCAycHggMXB4IGFkanVzdC1odWUoJGNvbG9yLDIwZGVnKTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgcGFkZGluZzogMHJlbSAuNXJlbSAwcmVtIC41cmVtO1xuICAgIG1hcmdpbjouNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCM5NDk0YjcsIDIwJSk7XG4gICAgaSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuM3JlbTtcbiAgICAgICAgZm9udC1zaXplOiAkc2l6ZTtcbiAgICB9XG4gICAgc3BhbiB7Zm9udC1zaXplOiAxcmVtfVxuICAgIFxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkY29sb3IsIDQ1JSk7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCBkYXJrZW4oJGNvbG9yLDIwJSk7XG4gICAgICBcbiAgICB9XG59XG5cbkBtaXhpbiBpYnotaW5wdXQtYWxlcnQgKCRjb2xvciwgJGJhY2tncm91bmQpIHtcbiAgICBwb3NpdGlvbiAgOmZpeGVkO1xuICAgIG1hcmdpbjogLTIuMnJlbSAwIDAgMTVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwxMCUpO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjJyZW0gIWltcG9ydGFudDtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */ diff --git a/afm-client/dist.prod/opa/AFBclient.min.css b/afm-client/dist.prod/opa/AFBclient.min.css new file mode 100644 index 0000000..dbc5b6e --- /dev/null +++ b/afm-client/dist.prod/opa/AFBclient.min.css @@ -0,0 +1,8 @@ +submit-button{float:right;display:inline-block;border:1px solid #676767;box-shadow:2px 2px 1px gray;color:grey;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem;background:#d1d1e0}submit-button i{padding-right:.3rem;font-size:2rem}submit-button span{font-size:1rem}submit-button:hover{background:#f3f3f3;border:2px solid #4d4d4d}zf-modal{background-color:rgba(180,180,180,.5)}.box-content{border:2px solid #dcdcdc!important;border-radius:5px;min-width:98%!important;margin:.5rem;background:rgba(200,205,200,.3)}.box-content .box-title{display:block;font-size:1.3rem}.ui-notification{width:auto;border-radius:5px}.ibz-right{float:right!important}.ibz-left{float:left!important} +token-refresh{display:block;float:right;margin:.5rem 1rem 0 0}.button-box{height:4.5rem}.button-box .session-button{float:left;width:5rem}.button-box .response>span{display:block;margin:.3rem .5rem}.button-box .fail{color:red;border:1px solid #c00}.button-box .success{color:green;border:1px solid #004d00}.message-box{height:auto;width:100%;font-size:.75rem}.message-box .response .err-no{color:grey}.message-box .response .res.err-ok{color:#00f}.message-box .response .req.err-ok{color:#8a2be2}.message-box .response .status.err-ok{color:green}.message-box .response .status.err-fx{color:red} +.upload-file{display:inline-block;border:1px solid #676767;box-shadow:2px 2px 1px gray;color:grey;border-radius:5px;font-style:italic;padding:0 .5rem;background:#d1d1e0;float:right;height:3rem;margin:.5rem}.upload-file span{font-size:1rem}.upload-file:hover{background:#f3f3f3;border:2px solid #4d4d4d}.upload-file i{padding-right:.3rem;font-size:2rem}.upload-file .ibz-range-slider{height:10%!important;border-radius:5px;background-color:#d3d3d3!important}.upload-file .ibz-range-slider .range-slider-handle{width:10%!important;height:100%!important;margin-top:.2rem;background-color:purple!important}.upload-file .ibz-range-slider .range-slider-active-segment{height:80%!important;background-color:#90ee90}input-text alert{position:fixed;margin:-2.2rem 0 0 15rem;border-radius:5px;font-style:italic;border-color:rgba(175,175,175,.6);color:#00008b;background-color:rgba(200,200,200,.6)!important;padding:.2rem!important}input-text input{margin-bottom:.5rem!important}input-text label{margin-top:1rem!important}input-text .required{float:right;color:#87cefa}input-text .required.valid{color:green}input-text .required.invalid{color:plum}input-text .status-untouch{border-color:rgba(200,200,200,.6)!important;box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(200,200,200,.6)!important;color:#696969!important}input-text input:focus{border-color:rgba(82,168,236,.8);box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(82,168,236,.8)!important;transition:border .2s linear 0s,box-shadow .2s linear 0s;color:#483d8b!important}input-text .status-valid{border-color:rgba(154,205,50,.6)!important;box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(154,205,50,.6)!important}input-text .status-invalid{border-color:rgba(154,17,69,.6);box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(154,17,69,.6)!important;color:#9a1145} +appli-button i,appli-button span{font-size:1rem}appli-button{display:inline-block;border:1px solid #676767;box-shadow:2px 2px 1px gray;color:grey;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem;background:#d1d1e0}appli-button i{padding-right:.3rem}appli-button:hover{background:#f3f3f3;border:2px solid #4d4d4d}appli-button img{height:3rem} +link-button,link-button.secondary{display:inline-block;font-style:italic;margin:.5rem}link-button i,link-button span,link-button.secondary span{font-size:1rem}link-button{border:1px solid #0040ff;box-shadow:2px 2px 1px #43f;color:#36f;border-radius:5px;padding:0 .5rem;background:#d1d1e0}link-button i{padding-right:.3rem}link-button:hover{background:#fff;border:2px solid #03c}link-button.secondary{border:1px solid #668dff;box-shadow:2px 2px 1px #a199ff;color:#99b3ff;border-radius:5px;padding:0 .5rem;background:#d1d1e0}link-button.secondary i{padding-right:.3rem;font-size:1rem}link-button.secondary:hover{background:#fff;border:2px solid #3367ff} +link-button i,link-button span,token-refresh span{font-size:1rem}link-button{display:inline-block;border:1px solid #0040ff;box-shadow:2px 2px 1px #43f;color:#36f;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem;background:#d1d1e0}link-button i{padding-right:.3rem}link-button:hover{background:#fff;border:2px solid #03c}tip-modal{position:relative}.tip-modal-popup{width:20rem;position:absolute;top:1em;padding:.2em .6em;border:1px solid #963;background-color:#e5ffff;color:#000;opacity:0;transition:visibility .5s linear 1s,opacity 1s linear;border-radius:5px}.tip-modal-popup i{margin:0 .3rem 0 0;display:inline}token-refresh{display:inline-block;border:1px solid #676767;box-shadow:2px 2px 1px gray;color:grey;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem 1rem .5rem .5rem;background:#d1d1e0}token-refresh i{padding-right:.3rem;font-size:1rem;margin-left:.5rem}token-refresh:hover{background:#f3f3f3;border:2px solid #4d4d4d}token-refresh.online{color:#06c}token-refresh.online i{color:#0f0}token-refresh.offline{color:#f0f}token-refresh.offline i{color:red} +.range-slider-handle{display:inline-block;position:absolute;z-index:1;top:-.2rem;width:2rem;height:1.375rem;border:1px solid;cursor:pointer;background:#008cba}.range-slider-handle,.range-slider.radius{background:#008cba;-webkit-border-radius:3px;border-radius:3px}.range-slider-active-segment{display:inline-block;top:.07rem;position:absolute;height:.8rem;background:#e5e5e5}.ibz-range-slider{background-color:rgba(154,205,50,.6)!important;height:1rem;position:relative}.ibz-range-slider .range-slider-active-segment{background-color:rgba(82,168,200,.6)}.ibz-range-slider-display{background-color:rgba(82,168,200,.6)!important;width:4rem!important;padding:.25rem;text-align:center}.ibz-range-slider-start,.ibz-range-slider-stop{display:inline-block;position:absolute;padding-top:2px;height:95%;background:repeating-linear-gradient(45deg,#606dbc,#606dbc 10px,#465298 10px,#465298 20px)} +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy9hcHAvaWJ6LWdsb2JhbC5zY3NzIiwic3R5bGVzL2FwcC9faWJ6LW1peGlucy5zY3NzIiwicGFnZXMvRGFzaGJvYXJkL0Rhc2hib2FyZE1vZHVsZS5zY3NzIiwid2lkZ2V0cy9Gb3JtSW5wdXQvRm9ybUlucHV0LnNjc3MiLCJ3aWRnZXRzL0FjdGlvbkJ1dHRvbnMvQWN0aW9uQnV0dG9ucy5zY3NzIiwid2lkZ2V0cy9OYXZpZ2F0aW9uL05hdmlnYXRpb24uc2NzcyIsIndpZGdldHMvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25zLnNjc3MiLCJ3aWRnZXRzL1JhbmdlU2xpZGVycy9SYW5nZXNsaWRlci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CYSxjQUNULE1BQU8sTUNEUCxRQUFTLGFBQ1QsT0FBVyxJQUFNLE1BQUMsUUFDbEIsV0FBZSxJQUFJLElBQUksSUFBQyxLQUN4QixNRERvQixLQ0VwQixjQUFlLElBQ2YsV0FBWSxPQUNaLFFBQVMsRUFBQSxNQUNULE9BQU8sTUFDUCxXQUFZLFFBQ1gsZ0JBQ0csY0FBZSxNQUNmLFVBWnlCLEtBY3pCLG1CQUFFLFVBQVcsS0FFVixvQkFDTCxXQUFZLFFBQ1osT0FBVyxJQUFNLE1BQUMsUURaaEIsU0FDTixpQkFBa0IscUJBR1IsYUNwQlIsT0FBUSxJQUFBLE1BQUEsa0JBQ1IsY0FBZSxJQUlmLFVBQVcsY0FDWCxPQUFRLE1BQ1IsV0FBWSxxQkRnQkYsd0JBQ04sUUFBUyxNQUNULFVBQVcsT0FLSCxpQkFDWixNQUFPLEtBQ1AsY0FBZSxJQUdULFdBQ04sTUFBTyxnQkFHRixVQUNMLE1BQU87QUUxQkUsY0FDVCxRQUFTLE1BQ1QsTUFBTyxNQUNQLE9BQVEsTUFBQSxLQUFBLEVBQUEsRUFHRCxZQUNQLE9BQVUsT0FFSyw0QkFDYixNQUFPLEtBQ1AsTUFBTyxLQUdPLDJCQUNaLFFBQVMsTUFDVCxPQUFRLE1BQUEsTUFHUCxrQkFDRCxNQXRCSyxJQXVCTCxPQUFXLElBQU0sTUFBQyxLQUVk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Yix3QkFBZSx1QkFpQmQsUUFBUyxhQUNULFNBQVUsU0FDVixZQUFhLElBQ2IsT0FBUSxJQUNSLFdBQVkiLCJmaWxlIjoiQUZCY2xpZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbkF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuXG5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4oYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG5NRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG5Zb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4qL1xuXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuc3VibWl0LWJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIEBpbmNsdWRlIGliei1idXR0b24oZ3JleSk7XG59XG5cbnpmLW1vZGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODAsMTgwLDE4MCwuNSk7XG59XG5cbi5ib3gtY29udGVudCB7XG4gICAgIEBpbmNsdWRlIGliei1ib3gtY29udGVudDtcblxuICAgIC5ib3gtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgfVxufVxuXG4vLyBDaGFuZ2UgTm90aWZpY2F0aW9ucyBkZWZhdWx0IHNpemVcbi51aS1ub3RpZmljYXRpb24ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmliei1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi5pYnotbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn0iLCIvKlxuICAgIEV2ZXJ5IFNDU1MgZmlsZXMgd2lsbCBiZSBpbmplY3RlZCBpbnRvIG1haW4gSFRNTCBwYWdlXG4qL1xuJXNoYWRvdy10cmFuc2l0aW9uIHtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBsaW5lYXIgMHMsIGJveC1zaGFkb3cgMC4ycyBsaW5lYXIgMHM7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG5AbWl4aW4gaWJ6LWJveC1jb250ZW50IHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBnYWluc2Jvcm8gIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1pbi13aWR0aDogOTglICFpbXBvcnRhbnQ7IFxuICAgIG1hcmdpbjogLjVyZW0gLjVyZW0gLjVyZW0gLjVyZW07XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMDAsMjA1LDIwMCwuMyk7XG59XG5cbkBtaXhpbiBpYnotYnV0dG9uICgkY29sb3IsICRzaXplOjJyZW0pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRjb2xvciwxMCUpO1xuICAgIGJveC1zaGFkb3c6IDJweCAycHggMXB4IGFkanVzdC1odWUoJGNvbG9yLDIwZGVnKTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgcGFkZGluZzogMHJlbSAuNXJlbSAwcmVtIC41cmVtO1xuICAgIG1hcmdpbjouNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCM5NDk0YjcsIDIwJSk7XG4gICAgaSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuM3JlbTtcbiAgICAgICAgZm9udC1zaXplOiAkc2l6ZTtcbiAgICB9XG4gICAgc3BhbiB7Zm9udC1zaXplOiAxcmVtfVxuICAgIFxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkY29sb3IsIDQ1JSk7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCBkYXJrZW4oJGNvbG9yLDIwJSk7XG4gICAgICBcbiAgICB9XG59XG5cbkBtaXhpbiBpYnotaW5wdXQtYWxlcnQgKCRjb2xvciwgJGJhY2tncm91bmQpIHtcbiAgICBwb3NpdGlvbiAgOmZpeGVkO1xuICAgIG1hcmdpbjogLTIuMnJlbSAwIDAgMTVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwxMCUpO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjJyZW0gIWltcG9ydGFudDtcbn1cbiIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbkBpbXBvcnQgXCJhcHAvaWJ6LW1peGluc1wiO1xuXG4kQ09MT1JfU1VDQ0VTUzogZ3JlZW47XG4kQ09MT1JfRkFJTDogcmVkO1xuXG50b2tlbi1yZWZyZXNoIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAuNXJlbSAxcmVtIDAgMDtcbn1cblxuLmJ1dHRvbi1ib3gge1xuICAgIGhlaWdodCAgOiA0LjVyZW07XG4gICAgXG4gICAgLnNlc3Npb24tYnV0dG9uIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDVyZW07XG4gICAgfTtcbiAgICBcbiAgICAucmVzcG9uc2UgPiBzcGFue1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAuM3JlbSAuNXJlbSAuM3JlbSAuNXJlbTsgICAgICAgIFxuICAgIH0gIFxuICAgIFxuICAgIC5mYWlsIHsgXG4gICAgICAgIGNvbG9yOiRDT0xPUl9GQUlMO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJENPTE9SX0ZBSUwsMTAlKTtcbiAgICB9XG4gICAgLnN1Y2Nlc3MgeyBcbiAgICAgICAgY29sb3I6JENPTE9SX1NVQ0NFU1M7IFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJENPTE9SX1NVQ0NFU1MsMTAlKTtcbiAgICB9XG5cbn07XG5cbi5tZXNzYWdlLWJveCB7XG4gICAgaGVpZ2h0ICA6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gIFxuICAgIC5yZXNwb25zZSB7XG4gICAgICAgIC5lcnItbm8geyBjb2xvcjpncmV5OyB9XG4gICAgICAgIC5yZXMuZXJyLW9rIHsgY29sb3I6IGJsdWU7IH1cbiAgICAgICAgLnJlcS5lcnItb2sgeyBjb2xvcjpibHVldmlvbGV0OyB9XG4gICAgICAgIC5zdGF0dXMuZXJyLW9rIHsgY29sb3I6Z3JlZW47IH1cbiAgICAgICAgLnN0YXR1cy5lcnItZnggeyBjb2xvcjpyZWQ7IH0gICAgICAgXG4gICAgfSBcbiAgICBcblxufTtcblxuXG5cbiIsIi8qXG4gICAgU2FtcGxlIG9mIHN0eWxlIG92ZXJsb2FkIGZvciBhIHNwZWNpZmljIHdpZGdldFxuXG4gICAgTm90ZTogdGhpcyBTQ1NTIGlzIGluamVjdGVkIHdpdGggbWFpbiBIVE1MIHBhZ2UsIGl0IHNjb3BlIHNob3VsZCBiZSByZWR1Y2VcbiAgICB0byBhIHNwZWNpZmljIHdpZGdldCBvciBpdCB2YWx1ZSB3aWxsIGJlIHByb3BhZ2F0ZWQgYXQgYSBnbG9iYWwgbGV2ZWwuXG4qL1xuXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuLnVwbG9hZC1maWxlIHtcbiAgICBAaW5jbHVkZSBpYnotYnV0dG9uKGdyZXksMXJlbSlcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0ICA6IDNyZW07XG4gICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICBpIHsgZm9udC1zaXplOiAycmVtfVxuICAgIFxuICAgIC5pYnotcmFuZ2Utc2xpZGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMCUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXkgIWltcG9ydGFudDtcbiAgICBcbiAgICAgICAgLnJhbmdlLXNsaWRlci1oYW5kbGUge1xuICAgICAgICAgICAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAuMnJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHB1cnBsZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLnJhbmdlLXNsaWRlci1hY3RpdmUtc2VnbWVudCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDgwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5pbnB1dC10ZXh0IHtcbiAgXG4gICAgYWxlcnQge0BpbmNsdWRlIGliei1pbnB1dC1hbGVydChkYXJrYmx1ZSwgcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjYpKX07XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5yZXF1aXJlZCB7XG4gICAgICAgIGNvbG9yOiBibHVlO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGNvbG9yOiBsaWdodHNreWJsdWU7XG4gICAgfVxuICAgIC5yZXF1aXJlZC52YWxpZCB7XG4gICAgICAgIGNvbG9yOiBncmVlbjtcbiAgICB9XG4gICAgXG4gICAgLnJlcXVpcmVkLmludmFsaWQge1xuICAgICAgICBjb2xvcjogcGx1bTtcbiAgICB9ICBcblxuICAgIC5zdGF0dXMtdW50b3VjaCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjYpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSBpbnNldCwgMCAwIDhweCByZ2JhKDIwMCwgMjAwLCAyMDAsIDAuNikgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICM2OTY5NjkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBpbnB1dDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg4MiwxNjgsMjM2LDAuOCkgO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSkgaW5zZXQsIDAgMCA4cHggcmdiYSg4MiwxNjgsMjM2LDAuOCkgIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgbGluZWFyIDBzLCBib3gtc2hhZG93IDAuMnMgbGluZWFyIDBzO1xuICAgICAgICBjb2xvcjogZGFya3NsYXRlYmx1ZSAhaW1wb3J0YW50O1xuICAgICAgICBAZXh0ZW5kIHNoYWRvdy10cmFuc2l0aW9uO1xuICAgIH1cblxuICAgIC5zdGF0dXMtdmFsaWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTU0LCAyMDUsIDUwLCAwLjYpIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpIGluc2V0LCAwIDAgOHB4IHJnYmEoMTU0LCAyMDUsIDUwLCAwLjYpIWltcG9ydGFudDtcbiAgICAgICAgQGV4dGVuZCBzaGFkb3ctdHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICAuc3RhdHVzLWludmFsaWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTU0LCAxNywgNjksIDAuNik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSBpbnNldCwgMCAwIDhweCByZ2JhKDE1NCwgMTcsIDY5LCAwLjYpIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHJnYigxNTQsIDE3LCA2OSk7XG4gICAgICAgIEBleHRlbmQgc2hhZG93LXRyYW5zaXRpb247XG4gICAgfVxuXG59XG4iLCIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuLy8gcGxhY2UgaGVyZSB5b3VyIHN1Ym1pdCBidXR0b25zIGN1c3RvbWl6YXRpb25cbmFwcGxpLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgaWJ6LWJ1dHRvbihncmV5LDFyZW0pXG4gICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgIH1cbn1cbiIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbkBpbXBvcnQgXCJhcHAvaWJ6LW1peGluc1wiO1xuXG5cbmxpbmstYnV0dG9uIHtAaW5jbHVkZSBpYnotYnV0dG9uKCMzMzY2ZmYsMXJlbSl9O1xuXG4vL3BhbGUgYmx1ZSBmb3Igc2Vjb25kYXR5IGxpbmtcbmxpbmstYnV0dG9uLnNlY29uZGFyeSB7QGluY2x1ZGUgaWJ6LWJ1dHRvbigjOTliM2ZmLDFyZW0pfTtcblxuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIFJlZmVyZW5jZTogaHR0cDovL3d3dy5ncmV5d3l2ZXJuLmNvbS8/cG9zdD0zMzdcbiAqL1xuXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuXG5saW5rLWJ1dHRvbiB7QGluY2x1ZGUgaWJ6LWJ1dHRvbigjMzM2NmZmLDFyZW0pfTtcblxuLy8gTW9kYWwgc2hvdWxkIGJlIHJlbGF0aXZlIGFuZCB0aXAtbW9kYWwtcG9wdXAgYWJzb2x1dGVcbnRpcC1tb2RhbCB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG59XG5cbi50aXAtbW9kYWwtcG9wdXAge1xuICAgIC8vdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAyMHJlbTtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MWVtO1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNmVtO1xuICAgIGJvcmRlcjoxcHggc29saWQgIzk5NjYzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNlNWZmZmY7XG4gICAgY29sb3I6IzAwMDtcbiAgICBvcGFjaXR5OjA7XG4gICAgdHJhbnNpdGlvbjp2aXNpYmlsaXR5IC41cyBsaW5lYXIgMXMsb3BhY2l0eSAxcyBsaW5lYXI7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGkge1xuICAgICAgICBtYXJnaW46IDAgLjNyZW0gMCAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG50b2tlbi1yZWZyZXNoIHtcbiAgICBAaW5jbHVkZSBpYnotYnV0dG9uKGdyZXksMXJlbSlcbiAgICBpIHttYXJnaW4tbGVmdDogLjVyZW07fVxuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxudG9rZW4tcmVmcmVzaC5vbmxpbmUge1xuICAgIGNvbG9yOiAjMDA2NmNjO1xuICAgIGkge2NvbG9yOiBsaW1lO30gICAgXG59XG5cbnRva2VuLXJlZnJlc2gub2ZmbGluZSB7XG4gICAgY29sb3I6ICNmZjAwZmY7XG4gICAgaSB7Y29sb3I6IHJlZDt9ICAgIFxufVxuIiwiLypcbiAqIGliei1EYXRlcGlja2VyIGZvciBGb3VuZGF0aW9uXG4gKlxuICogQXV0aG9yOiBGdWx1cCBBciBGb2xsXG4gKiBEYXRlICA6IE1hcmNoLTIwMTVcbiAqIE9iamVjdDogU0FTUyBzdHlsZXNoZWV0LCBjdXN0b21pemVkIHRvIEZvdW5kYXRpb25cbiAqIFJlZmVyZW5jZXM6IGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc3RyaXBlcy1jc3MvXG4gKlxuICovXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuLnJhbmdlLXNsaWRlci1oYW5kbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAtMC4ycmVtO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAxLjM3NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAjMDA4Y2JhO1xufVxuXG4ucmFuZ2Utc2xpZGVyLnJhZGl1cywgLnJhbmdlLXNsaWRlci1oYW5kbGUge1xuICBiYWNrZ3JvdW5kOiAjMDA4Y2JhO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4ucmFuZ2Utc2xpZGVyLWFjdGl2ZS1zZWdtZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0b3A6IDAuMDdyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAwLjgwcmVtO1xuICBiYWNrZ3JvdW5kOiAjZTVlNWU1O1xufVxuXG4uaWJ6LXJhbmdlLXNsaWRlciB7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1NCwgMjA1LCA1MCwgMC42KSAhaW1wb3J0YW50O1xuICAgaGVpZ2h0OiAxcmVtO1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgXG4gIC5yYW5nZS1zbGlkZXItYWN0aXZlLXNlZ21lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoODIsIDE2OCwgMjAwLCAwLjYpO1xuICB9XG4gIFxuICAmLWRpc3BsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoODIsIDE2OCwgMjAwLCAwLjYpICFpbXBvcnRhbnQ7XG4gICAgd2lkdGggOiA0cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogLjI1cmVtO1xuICAgIHRleHQtYWxpZ246Y2VudGVyXG4gICB9XG5cbiAgICYtc3RhcnQsJi1zdG9wIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIHBhZGRpbmctdG9wOiAycHg7XG4gICBoZWlnaHQ6IDk1JTtcbiAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgNDVkZWcsXG4gICAgIzYwNmRiYyxcbiAgICAjNjA2ZGJjIDEwcHgsXG4gICAgIzQ2NTI5OCAxMHB4LFxuICAgICM0NjUyOTggMjBweFxuICApO31cblxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */ diff --git a/afm-client/dist.prod/opa/AFBclient.min.js b/afm-client/dist.prod/opa/AFBclient.min.js new file mode 100644 index 0000000..2535295 --- /dev/null +++ b/afm-client/dist.prod/opa/AFBclient.min.js @@ -0,0 +1,2 @@ +!function(){"use strict";function e(e){var t=[],a=[];this.getId=function(){return e.sliderid},this.getCbHandle=function(){return e.cbhandle},this.getView=function(n){return n||(n=0),e.value[n]===t[n]?a[n]:(t[n]=e.value[n],e.formatter?a[n]=e.formatter(e.value[n],e.ctrlhandle):a[n]=e.value[n],a[n])},this.updateClass=function(t,a){e.updateClass(t,a)},this.forceRefresh=function(t){e.forceRefresh(t)},this.getValue=function(t){return t||(t=0),e.value[t]},this.getRelative=function(t){return t||(t=0),e.relative[t]},this.setValue=function(t,a){a||(a=0),e.setValue(t,a)},this.setDisable=function(t){e.setDisable(t)}}var t=angular.module("RangeSlider",[]);t.directive("rangeSlider",["$log","$document","$timeout",function(t,a,n){function i(t,i,s,l){t.initWidget=function(e){e.byStep&&(t.byStep=parseInt(e.byStep)),e.notMore&&(t.notMore=parseInt(e.notMore)),e.notLess&&(t.notLess=parseInt(e.notLess)),e.id&&(t.sliderid=e.id),void 0!==e.value&&(t.value=e.value,t.forceRefresh(50))},t.forceRefresh=function(e){var a=t.value;t.value=[void 0,void 0],n(function(){t.setValue(a[0],0),t.dual&&t.setValue(a[1],1)},e)},t.updateClass=function(e,t){t?i.addClass(e):i.removeClass(e)},t.setDisable=function(e){e?(i.addClass("disable"),t.handles[0].css("visibility","hidden"),t.dual&&t.handles[1].css("visibility","hidden")):(i.removeClass("disable"),t.handles[0].css("visibility","visible"),t.dual&&t.handles[1].css("visibility","visible"))},t.normalize=function(e){var a,n=t.notMore-t.notLess,i=e*n;if(t.byStep>0){var s=(i-i%t.byStep)/t.byStep,l=i%t.byStep,o=l>=.5*t.byStep?t.byStep:0;return a=s*t.byStep+o+t.notLess}if(t.byStep<0){var r=Math.pow(10,-1*t.byStep);return a=t.notLess+parseInt(i*r)/r}return i},t.getValue=function(e,a){t.vertical?t.relative[a]=(e-t.bounds.handles[a].getBoundingClientRect().height)/(t.bounds.bar.getBoundingClientRect().height-t.bounds.handles[a].getBoundingClientRect().height):t.relative[a]=e/(t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[a].getBoundingClientRect().width);var n=t.normalize(t.relative[a]);n!==t.value[a]&&(nt.stopValue&&(n=t.stopValue),t.formatter?t.viewValue=t.formatter(n,t.ctrlhandle):t.viewValue=n,t.displays[a]&&t.displays[a].html(t.viewValue),t.value[a]=n,l&&l.$setViewValue(t.viewValue),t.$apply(),n>t.startValue&&nt.value[0]&&(t.dual?t.setValue(e,1):t.setValue(e,0)),t.vertical?(a=t.bounds.bar.getBoundingClientRect().height*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("height",a+"px")):(a=t.bounds.bar.getBoundingClientRect().width*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("width",a+"px")),t.startValue=e},t.setStop=function(e){var a;et.notMore&&(e=t.notMore),e0&&t.$apply(t.setValue(t.value[t.actif]+t.byStep,t.actif)),t.byStep<0&&t.$apply(t.setValue(t.value[t.actif]+1/Math.pow(10,-1*t.byStep),t.actif)),t.callback&&t.callback(t.value[t.actif],t.ctrlhandle);break;case 37:case 40:t.byStep>0&&t.$apply(t.setValue(t.value[t.actif]-t.byStep,t.actif)),t.byStep<0&&t.$apply(t.setValue(t.value[t.actif]-1/Math.pow(10,-1*t.byStep),t.actif)),t.callback&&t.callback(t.value[t.actif],t.ctrlhandle);break;case 27:t.handles[t.actif][0].blur()}},t.moveHandle=function(e,a,n){var i;t.vertical?(i=t.bounds.bar.getBoundingClientRect().bottom-n,i>t.bounds.bar.getBoundingClientRect().height&&(i=t.bounds.bar.getBoundingClientRect().height),ii&&(i=0),a+t.bounds.handles[e].getBoundingClientRect().width>t.bounds.bar.getBoundingClientRect().right&&(i=t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[e].getBoundingClientRect().width)),t.getValue(i,e),t.dual&&t.value[0]>t.value[1]&&(0===e?t.setValue(t.value[0],1):t.setValue(t.value[1],0))},t.focusCB=function(e){e?a.on("keydown",t.keydown):a.unbind("keydown",t.keydown)},t.touchBarCB=function(e){var a,n=0,i=e.changedTouches,s=t.value[n];if(e.preventDefault(),t.dual){a=t.vertical?(i[0].pageY-t.bounds.bar.getBoundingClientRect().bottom)/t.bounds.bar.getBoundingClientRect().height:(i[0].pageX-t.bounds.bar.getBoundingClientRect().left)/t.bounds.bar.getBoundingClientRect().width;var l=Math.abs(a-t.relative[0]),o=Math.abs(a-t.relative[1]);l>o&&(n=1)}t.moveHandle(n,i[0].pageX,i[0].pageY),t.callback&&s!==t.value[n]&&t.callback(t.value[n],t.ctrlhandle)},t.touchHandleCB=function(e,n){function s(e){e.preventDefault();for(var a=e.changedTouches,i=0;it.stopAt,t.stopAt&&t.setStop(t.stopAt)}),t.initialSettings(t.initial)},t.init(),t.$watch("inithook",function(){t.inithook&&t.inithook(t.ctrlhandle)}),t.$watch("initvalues",function(){t.initvalues&&t.initWidget(t.initvalues)}),t.$watch("ngModel",function(e){t.setValue(e,0)})}var s='
';return{restrict:"E",scope:{startAt:"=",stopAt:"=",callback:"=",formatter:"=",inithook:"=",cbhandle:"=",initvalues:"=",ngModel:"="},require:"?ngModel",template:s,replace:!0,link:i}}])}(),function(){"use strict";var e='
afb://{{hostname}}:{{httpdport}}
';angular.module("TokenRefresh",["AppConfig","ModalNotification"]).directive("tokenRefresh",["$timeout","$http","$location","Notification","AppConfig",function(t,a,n,i,s){function l(e,l,o){e.status=void 0,e.online=function(){l.addClass("online"),l.removeClass("offline")},e.offline=function(){l.addClass("offline"),l.removeClass("online")},e.onerror=function(t,a,n){e.status!==!1&&(i.warning({message:"AppFramework Binder Lost",delay:5e3}),e.offline()),e.status=0},e.onsuccess=function(t,a,n,l){e.status!==!0&&(t.request.token&&(s.session.token=t.request.token),t.request.uuid&&(s.session.uuid=t.request.uuid),t.request.timeout&&(s.session.timeout=t.request.timeout),i.success({message:"AppFramework Binder Back to Live",delay:3e3}),e.online(),e.callback&&e.callback()),e.status=1},e.getping=function(){var n=a.get(s.session.ping+"?token="+s.session.token);n.success(e.onsuccess),n.error(e.onerror),t(e.getping,1e3*s.session.pingrate)},e.refresh=function(){var n=a.get(s.session.refresh+"?token="+s.session.token);n.success(e.onsuccess),n.error(e.onerror),t(e.refresh,250*s.session.timeout)},e.tkcreate=function(){var t=a.get(s.session.create+"?token="+s.session.initial);t.success(e.onsuccess),t.error(e.onerror)},e.icon=o.icon||"fi-lightbulb",e.hostname=n.host(),e.httpdport=n.port(),e.autolog=JSON.parse(o.autolog||!1),e.autolog&&e.tkcreate(),t(e.getping,1e3*s.session.pingrate),t(e.refresh,250*s.session.timeout)}return{template:e,scope:{callback:"="},restrict:"E",link:l}}])}(),function(){"use strict";var e='
{{tip}}
';angular.module("ModalNotification",[]).directive("tipModal",["$timeout",function(t){function a(e,a,n){function i(){function a(){e.show&&e.modal.css({opacity:1,visibility:"visible"})}e.show=!0,e.timeout=t(a,e.delay)}function s(){e.show=!1,e.modal.css({opacity:0,visibility:"hidden"})}e.parent=a.parent(),e.modal=a.find("div"),e.icon=n.icon||"fi-lightbulb",e.parent.addClass("as-modal-tip"),e.parent.bind("click",s),e.parent.bind("focus",i),e.parent.bind("mouseover",i),e.parent.bind("mouseleave",s),e.parent.bind("blur",s),e.delay=n.delay||1e3}return{restrict:"E",template:e,link:a,scope:{tip:"="}}}])}(),function(){"use strict";var e='{{label}}';angular.module("LinkButton",[]).directive("linkButton",["$location",function(t){function a(e,a,n){e.clicked=function(){n.query?t.path(n.href).search(n.query):t.path(n.href)},e.icon=n.icon||"fi-link",e.label=n.label||"Jump",e.href=n.href||"/home",a.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:a,scope:{}}}])}(),function(){"use strict";var e='
{{label}}
';angular.module("SubmitButton",[]).directive("submitButton",function(){function t(e,t,a){e.icon=a.icon||"fi-foot",e.label=a.label||"Next",t.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:t,scope:{clicked:"="}}})}(),function(){"use strict";var e='
{{label}}
',t='×Application {{name}}';angular.module("AppliButton",[]).directive("appliButton",["AppConfig","AppCall","ModalFactory","Notification","$timeout",function(a,n,i,s,l){function o(e,o,r){e.clicked=function(){var a=function(){e.modal.deactivate(),l(function(){e.modal.destroy()},1e3)},r=function(t){switch(t){case"start":n.get("afm-main","start",{id:e.appliID},function(t){return 200!==t.status?(s.error({message:"Fail to start application="+e.label+" ID="+e.appliID,delay:5e3}),o.addClass("fail"),o.removeClass("success"),void e.callback(e.appliID,"/api/afm-main/start",t)):"AJB_reply"!==t.data.request.jtype&&"start"!==t.data.request.api?(s.error({message:"Invalid Respond to /opa/afm-main/start response.data="+t.data,delay:5e3}),o.addClass("fail"),o.removeClass("success"),void e.callback(e.appliID,"/api/afm-main/start",t)):(o.addClass("success"),o.removeClass("fail"),e.runID=t.data.response.runid,void e.callback(e.appliID,"/api/afm-main/start",t))});break;case"stop":}a()},u={animationIn:"slideInFromTop",contentScope:{action:r,close:a,icon:e.icon,label:e.label},template:t};e.modal=new i(u),e.modal.activate()},r.handle&&e.store[r.handle].name?(e.icon=a.paths.icons+e.store[r.handle].name.toLowerCase()+"-ico.png",e.label=e.store[r.handle].name,e.appliID=r.handle):(e.icon=a.paths.icons+"w3c-ico.png",e.label=r.handle),o.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:o,scope:{callback:"=",store:"="}}}])}(),function(){"use strict";function e(e,t,a){var n=new XMLHttpRequest,i=new FormData;n.upload.onprogress=function(t){var a=Math.round(t.lengthComputable?100*t.loaded/t.total:0);e.slider&&e.slider.setValue(a)},n.onload=function(){e.divElem.addClass("success"),e.divElem.removeClass("error");var t={status:n.status,headers:n.getAllResponseHeaders()};e.callback(t)},n.onerror=function(){e.divElem.addClass("error"),e.divElem.removeClass("success")},n.onabort=function(){e.divElem.addClass("error"),e.divElem.removeClass("success");var t={status:n.status,headers:n.getAllResponseHeaders()};e.callback(t)},this.postfile=function(e){n.open("POST",e,!0),n.send(i)};for(var s=0;s1024*e.maxsize)setTimeout(a,100);else{var l=new FileReader;l.readAsArrayBuffer(this.file),l.onload=a,i.append(e.name,this.file,this.file.name)}}var t='
{{label}}
',a='Upload Application {{appname}} ?
',n='Invalid Application {{appname}} ?
';angular.module("UploadFiles",["AppConfig","ModalNotification","RangeSlider"]).directive("uploadAppli",["AppConfig","JQemu","Notification","ModalFactory","$timeout",function(i,s,l,o,r){function u(t,s,l){if(t.inputElem=s.find("input"),t.divElem=s.find("div"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var u,c,d,p=function(){u.postfile(l.posturl+"?token="+i.session.token),t.modal.deactivate(),r(function(){t.modal.destroy()},1e3)},f=function(){t.modal.deactivate(),r(function(){t.modal.destroy()},1e3)},g=function(e){if(e){var i=new JSZip(e.target.result),s=i.file("icon_128.png");s?(c=window.URL.createObjectURL(new Blob([s.asArrayBuffer()],{type:"image"})),d=a):(c=t.isnotvalid,d=n)}else u.file.size>1024*t.maxsize&&(c=t.istoobig,d=n),isNaN(u.file.size)&&(c=t.isnotvalid,d=n);var l={animationIn:"slideInFromTop",contentScope:{success:p,abandon:f,icon:c,appname:u.basename},template:d};t.modal=new o(l),t.modal.activate()};u=new e(t,s,g)},t.name=l.name||"appli",t.category=l.category||"appli",t.mimetype=l.accept||".wgt",t.maxsize=l.maxsize||1e5,t.regexp=new RegExp(l.accept+".*","i"),t.icon=l.icon||"fi-upload",t.label=l.label||"Upload",l.thumbnail?t.isnotvalid=i.paths[t.category]+l.isnotvalid:t.isnotvalid=i.paths[t.category]+"w3c-widget.png",l.istoobig?t.istoobig=i.paths[t.category]+l.istoobig:t.istoobig=i.paths[t.category]+"istoobig.png",t.noslider=l.noslider||!1,!l.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:u,scope:{callback:"="}}}])}(),function(){"use strict";var e='{{errmsg}}',t=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;angular.module("InputText",["JQueryEmu"]).directive("inputText",["JQemu",function(a){function n(e,n,i){e.error=!1,e.valid=!1,e.status="untouch",e.input=n.find("input"),e.required=0,"required"in i&&(e.required=1,n.addClass("required")),e.selected=function(){e.error=!1,e.errmsg=!1,e.status="touch"},e.validate=function(){e.parent.removeClass("ng-pristine"),e.value?(e.error=!1,e.value=e.value.trim(),"nospace"in i&&(e.value=e.value.replace(/\s/g,"")),"lowercase"in i&&(e.value=e.value.toLowerCase()),"minlen"in i&&e.value.length0&&e.l4acounter.validated--),e.callback(i.name,null,e.done)):(e.required&&!e.valid&&e.l4acounter.validated++,e.status="valid",e.valid=!0,e.callback(i.name,e.value,e.done))},e.done=function(t){for(var a in t)e[a]=t[a]},e.label=i.label,e.name=i.name,e.placeholder=i.placeholder,e.type=i.type||"text",e.tip=i.tip,e.parent=a.parent(n,"FORM"),"email"in i&&(i.lowercase=!0,i.nospace=!0,i.minlen=6),e.required&&(e.l4acounter=e.parent.data("l4acounter"),e.l4acounter?e.l4acounter.required++:(e.l4acounter={required:1,validated:0},e.parent.data("l4acounter",e.l4acounter))),e.$watch("value",function(){e.value&&e.validate()})}return{restrict:"E",template:e,link:n,scope:{callback:"=",value:"="}}}])}(),function(){"use strict";var e=' ';angular.module("InputPassword",[]).directive("inputPassword",function(){function t(e,t,a){e.valid1=function(t,a){e.firstpwd=a},e.valid2=function(t,n,i){e.firstpwd!==n?i({valid:!1,status:"invalid",errmsg:"both password should match"}):e.callback(a.name,n)},e.done=function(t){for(var a in t)e[a]=t[a]},e.name=a.name,e.label1=a.label||"Password",e.label2=a.label||"Password Verification",e.place1=a.placeholder1||"User Password",e.tip1=a.tip||"Choose a Password",e.place2=a.placeholder1||"Password Verification",e.tip2=a.tip||"Confirme your Password",e.minlen=a.minlen||10,"required"in a&&(e.required="required")}return{restrict:"E",template:e,link:t,scope:{callback:"="}}})}(),function(){"use strict";angular.module("DashboardModule",["SubmitButton","TokenRefresh","AppliButton"]).controller("DashboardController",["AppCall","Notification",function(e,t){var a=this;a.uuid="none",a.token="none",a.session="none",a.status="err-no",a.appliIDs=[],a.appliStore={},a.AppliCB=function(e,t,n){a.request=t,a.errcode=n.status,n.data&&(a.response=n.data)},a.GetRunnables=function(){e.get("afm-main","runnables",{},function(e){if(a.request="/api/afm-main/runnable",a.response=e.data,a.errcode=e.status,200===e.status){if("AJB_reply"!==e.data.request.jtype&&"runnables"!==e.data.request.api)return void t.error({message:"Invalid Respond to /opa/afm-main/runnable response.data="+e.data,delay:5e3});for(var n=[],i=0;i\n \n \n
\n')}])}(),function(){angular.module("AFBclient").run(["$templateCache",function(e){e.put("pages/Dashboard/Dashboard.html",'

Application Framework Manager Simple Client

req= {{ctrl.request}} res= {{ctrl.response}} status= {{ctrl.errcode}}
')}])}(); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndpZGdldHMvUmFuZ2VTbGlkZXJzL1JhbmdlU2xpZGVyTW9kLmpzIiwid2lkZ2V0cy9Ob3RpZmljYXRpb25zL1Rva2VuUmVmcmVzaFN2Yy5qcyIsIndpZGdldHMvTm90aWZpY2F0aW9ucy9Nb2RhbE5vdGlmaWNhdGlvbi5qcyIsIndpZGdldHMvTmF2aWdhdGlvbi9MaW5rQnV0dG9uLmpzIiwid2lkZ2V0cy9BY3Rpb25CdXR0b25zL1N1Ym1pdEJ1dHRvbi5qcyIsIndpZGdldHMvQWN0aW9uQnV0dG9ucy9BcHBsaUJ1dHRvbi5qcyIsIndpZGdldHMvRm9ybUlucHV0L1VwbG9hZEFwcGxpLmpzIiwid2lkZ2V0cy9Gb3JtSW5wdXQvSW5wdXRUZXh0LmpzIiwid2lkZ2V0cy9Gb3JtSW5wdXQvSW5wdXRQYXNzd29yZC5qcyIsInBhZ2VzL0Rhc2hib2FyZC9EYXNoYm9hcmRNb2R1bGUuanMiLCJzZXJ2aWNlcy9KUXVlcnlFbXUuanMiLCJldGMvcm91dGVzLmpzIiwiZXRjL0FwcENvbmZpZy5qcyIsImFwcC5qcyIsInBhZ2VzL0Rhc2hib2FyZC9EYXNoYm9hcmQuanMiXSwibmFtZXMiOlsiUmFuZ2VTbGlkZXJIYW5kbGUiLCJzY29wZSIsImludGVybmFscyIsImV4dGVybmFscyIsInRoaXMiLCJnZXRJZCIsInNsaWRlcmlkIiwiZ2V0Q2JIYW5kbGUiLCJjYmhhbmRsZSIsImdldFZpZXciLCJoYW5kbGUiLCJ2YWx1ZSIsImZvcm1hdHRlciIsImN0cmxoYW5kbGUiLCJ1cGRhdGVDbGFzcyIsImNsYXNzZSIsInN0YXR1cyIsImZvcmNlUmVmcmVzaCIsInRpbWVyIiwiZ2V0VmFsdWUiLCJnZXRSZWxhdGl2ZSIsInJlbGF0aXZlIiwic2V0VmFsdWUiLCJzZXREaXNhYmxlIiwiZmxhZyIsIlJhbmdlU2xpZGVyIiwiYW5ndWxhciIsIm1vZHVsZSIsImRpcmVjdGl2ZSIsIiRsb2ciLCIkZG9jdW1lbnQiLCIkdGltZW91dCIsImxpbmsiLCJlbGVtZW50IiwiYXR0cnMiLCJtb2RlbCIsImluaXRXaWRnZXQiLCJpbml0dmFsdWVzIiwiYnlTdGVwIiwicGFyc2VJbnQiLCJub3RNb3JlIiwibm90TGVzcyIsImlkIiwidW5kZWZpbmVkIiwiZHVhbCIsImFkZENsYXNzIiwicmVtb3ZlQ2xhc3MiLCJkaXNhYmxlZCIsImhhbmRsZXMiLCJjc3MiLCJub3JtYWxpemUiLCJyZXN1bHQiLCJyYW5nZSIsInBvaW50IiwibW9kIiwicmVtIiwicm91bmQiLCJwb3dlciIsIk1hdGgiLCJwb3ciLCJvZmZzZXQiLCJ2ZXJ0aWNhbCIsImJvdW5kcyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImhlaWdodCIsImJhciIsIndpZHRoIiwibmV3dmFsdWUiLCJzdGFydFZhbHVlIiwic3RvcFZhbHVlIiwidmlld1ZhbHVlIiwiZGlzcGxheXMiLCJodG1sIiwiJHNldFZpZXdWYWx1ZSIsIiRhcHBseSIsInRyYW5zbGF0ZSIsInNldFN0YXJ0Iiwic3RhcnQiLCJzZXRTdG9wIiwic3RvcCIsInJpZ2h0Iiwidm9mZnNldCIsIi13ZWJraXQtdHJhbnNmb3JtIiwiLW1vei10cmFuc2Zvcm0iLCItbXMtdHJhbnNmb3JtIiwiLW8tdHJhbnNmb3JtIiwidHJhbnNmb3JtIiwic2xpZGVyIiwiYm90dG9tIiwibGVmdCIsImtleWRvd24iLCJlIiwia2V5Q29kZSIsImFjdGlmIiwiY2FsbGJhY2siLCJibHVyIiwibW92ZUhhbmRsZSIsImNsaWVudFgiLCJjbGllbnRZIiwiZm9jdXNDQiIsImluc2lkZSIsIm9uIiwidW5iaW5kIiwidG91Y2hCYXJDQiIsImV2ZW50IiwidG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwib2xkdmFsdWUiLCJwcmV2ZW50RGVmYXVsdCIsInBhZ2VZIiwicGFnZVgiLCJkaXN0YW5jZTAiLCJhYnMiLCJkaXN0YW5jZTEiLCJ0b3VjaEhhbmRsZUNCIiwidG91Y2hldnQiLCJ0b3VjaG1vdmUiLCJpZHgiLCJsZW5ndGgiLCJ0b3VjaGVuZCIsImhhbmRsZUNCIiwiY2xpY2tldmVudCIsIm1vdXNlbW92ZSIsIm1vdXNldXAiLCJhdXRvbWF0aWMiLCJmb2N1cyIsImZpbmQiLCJzZWxlY3QiLCJlbGVtIiwiZG9tZWxlbSIsInF1ZXJ5U2VsZWN0b3IiLCJhbmdlbGVtIiwiaW5pdGlhbFNldHRpbmdzIiwiaW5pdGlhbCIsImRlY2ltYWxfcGxhY2VzX21hdGNoX3Jlc3VsdCIsInByZWNpc2lvbiIsIm1hdGNoIiwiZXZ0IiwiaW5pdCIsInJhbmRvbSIsIkluZmluaXR5IiwiZHVhbEhhbmRsZXMiLCJ0cmlnZ2VyX2lucHV0X2NoYW5nZSIsImRpc2FibGUiLCJkaXNwbGF5VGFyZ2V0IiwiZ2V0RWxlbWVudEJ5SWQiLCJzcGxpdCIsIm5nTW9kZWwiLCIkd2F0Y2giLCJzdGFydEF0Iiwic3RvcEF0IiwiaW5pdGhvb2siLCJuZXdWYWx1ZSIsInRlbXBsYXRlIiwicmVzdHJpY3QiLCJyZXF1aXJlIiwicmVwbGFjZSIsIiRodHRwIiwiJGxvY2F0aW9uIiwiTm90aWZpY2F0aW9uIiwiQXBwQ29uZmlnIiwibXltZXRob2RzIiwib25saW5lIiwib2ZmbGluZSIsIm9uZXJyb3IiLCJkYXRhIiwiZXJyY29kZSIsImhlYWRlcnMiLCJ3YXJuaW5nIiwibWVzc2FnZSIsImRlbGF5Iiwib25zdWNjZXNzIiwiY29uZmlnIiwicmVxdWVzdCIsInRva2VuIiwic2Vzc2lvbiIsInV1aWQiLCJ0aW1lb3V0Iiwic3VjY2VzcyIsImdldHBpbmciLCJoYW5kbGVyIiwiZ2V0IiwicGluZyIsImVycm9yIiwicGluZ3JhdGUiLCJyZWZyZXNoIiwidGtjcmVhdGUiLCJjcmVhdGUiLCJpY29uIiwiaG9zdG5hbWUiLCJob3N0IiwiaHR0cGRwb3J0IiwicG9ydCIsImF1dG9sb2ciLCJKU09OIiwicGFyc2UiLCJ0bXBsIiwiZGlzcGxheSIsImFjdGlvbiIsInNob3ciLCJtb2RhbCIsIm9wYWNpdHkiLCJ2aXNpYmlsaXR5IiwiY2xvc2UiLCJwYXJlbnQiLCJiaW5kIiwidGlwIiwiY2xpY2tlZCIsInF1ZXJ5IiwicGF0aCIsImhyZWYiLCJzZWFyY2giLCJsYWJlbCIsInRvTG93ZXJDYXNlIiwidG1wbEFwcGxpIiwidG1wbE1vZGFsIiwiQXBwQ2FsbCIsIk1vZGFsRmFjdG9yeSIsImNsb3NlTW9kYWwiLCJkZWFjdGl2YXRlIiwiZGVzdHJveSIsImFjdGlvbk1vZGFsIiwiYXBwbGlJRCIsInJlc3BvbnNlIiwianR5cGUiLCJhcGkiLCJydW5JRCIsInJ1bmlkIiwiYW5pbWF0aW9uSW4iLCJjb250ZW50U2NvcGUiLCJhY3RpdmF0ZSIsInN0b3JlIiwibmFtZSIsInBhdGhzIiwiaWNvbnMiLCJMb2FkRmlsZVN2YyIsImZpbGVzIiwiZmlsZUNCIiwieG1sUmVxIiwiWE1MSHR0cFJlcXVlc3QiLCJ4Zm9ybSIsIkZvcm1EYXRhIiwidXBsb2FkIiwib25wcm9ncmVzcyIsInByb2dyZXNzIiwibGVuZ3RoQ29tcHV0YWJsZSIsImxvYWRlZCIsInRvdGFsIiwib25sb2FkIiwiZGl2RWxlbSIsImdldEFsbFJlc3BvbnNlSGVhZGVycyIsIm9uYWJvcnQiLCJwb3N0ZmlsZSIsInBvc3R1cmwiLCJvcGVuIiwic2VuZCIsImkiLCJmaWxlIiwiYmFzZW5hbWUiLCJyZXZlcnNlIiwiaXNOYU4iLCJzaXplIiwibWF4c2l6ZSIsInNldFRpbWVvdXQiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJhcHBlbmQiLCJ0bXBsRXJyb3IiLCJKUWVtdSIsImlucHV0RWxlbSIsImltZ0NsaWNrZWQiLCJjbGljayIsIlNsaWRlckluaXRDQiIsIlVwTG9hZEZpbGUiLCJhcHBpY29uIiwiYWJhbmRvbiIsInJlYWRlckNCIiwiemlwYXBwIiwiSlNaaXAiLCJ0YXJnZXQiLCJ0aHVtYm5haWwiLCJ3aW5kb3ciLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJCbG9iIiwiYXNBcnJheUJ1ZmZlciIsInR5cGUiLCJpc25vdHZhbGlkIiwiaXN0b29iaWciLCJhcHBuYW1lIiwiY2F0ZWdvcnkiLCJtaW1ldHlwZSIsImFjY2VwdCIsInJlZ2V4cCIsIlJlZ0V4cCIsIm5vc2xpZGVyIiwiVHlwZUVycm9yIiwiZW1haWxwYXRlcm4iLCJ2YWxpZCIsImlucHV0IiwicmVxdWlyZWQiLCJzZWxlY3RlZCIsImVycm1zZyIsInZhbGlkYXRlIiwidHJpbSIsIm1pbmxlbiIsInRlc3QiLCJsNGFjb3VudGVyIiwidmFsaWRhdGVkIiwiZG9uZSIsInBsYWNlaG9sZGVyIiwibG93ZXJjYXNlIiwibm9zcGFjZSIsInZhbGlkMSIsImZpcnN0cHdkIiwidmFsaWQyIiwibGFiZWwxIiwibGFiZWwyIiwicGxhY2UxIiwicGxhY2Vob2xkZXIxIiwidGlwMSIsInBsYWNlMiIsInRpcDIiLCJjb250cm9sbGVyIiwiYXBwbGlJRHMiLCJhcHBsaVN0b3JlIiwiQXBwbGlDQiIsIkdldFJ1bm5hYmxlcyIsIkZpbGVVcGxvYWRlZCIsIkF1dG9TdGFydCIsImZhY3RvcnkiLCJGaW5kSW5QYXJlbnQiLCJzZWxlY3RvciIsInRvVXBwZXJDYXNlIiwidGFnTmFtZSIsIkZpbmRCeVRhZyIsInRhZyIsImNoaWxkcmVuIiwibmV4dCIsIkZpbmRCeUNsYXNzIiwiaGFzQ2xhc3MiLCJteU1ldGhvZHMiLCJmb3VuZGF0aW9uUm91dGVzIiwidXJsIiwibXlDb25maWciLCJpbWFnZSIsImF2YXRhciIsImF1ZGlvIiwiYXBwbGkiLCJteWFwaSIsImNoZWNrIiwicmVzZXQiLCJteUNhbGxzIiwicGx1Z2luIiwicGFyYW1zIiwidGhlbiIsIiR1cmxQcm92aWRlciIsIiRsb2NhdGlvblByb3ZpZGVyIiwib3RoZXJ3aXNlIiwiaHRtbDVNb2RlIiwiaGFzaFByZWZpeCIsInJ1biIsIkZhc3RDbGljayIsImF0dGFjaCIsImRvY3VtZW50IiwiYm9keSIsIiRpbmplY3QiLCIkdGVtcGxhdGVDYWNoZSIsInB1dCJdLCJtYXBwaW5ncyI6IkNBa0RBLFdBQ0EsWUFJQSxTQUFBQSxHQUFBQyxHQUNBLEdBQUFDLE1BQ0FDLElBRUFDLE1BQUFDLE1BQUEsV0FDQSxNQUFBSixHQUFBSyxVQUdBRixLQUFBRyxZQUFBLFdBQ0EsTUFBQU4sR0FBQU8sVUFHQUos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LEVBQUF0TSxHQUNBcU0sRUFBQUUsVUFBQSxjQUdBRCxFQUFBRSxXQUFBLEdBQUFDLFdBQUEsS0FJQSxRQUFBQyxLQUNBQyxVQUFBQyxPQUFBQyxTQUFBQyxNQXZDQXBWLFFBQUFDLE9BQUEsYUFDQSxZQUNBLFlBR0EsYUFDQSw0QkFDQSx1Q0FHQSxrQkFHQSxZQUNBLFlBQ0Esa0JBQ0EsY0FDQSxhQUNBLGVBQ0EsY0FDQSxzQkFFQWlKLE9BQUFBLEdBQ0E4TCxJQUFBQSxHQUdBOUwsRUFBQW1NLFNBQUEscUJBQUEscUJBa0JBclYsUUFBQUMsT0FBQSxjQUFBK1UsS0FBQSxpQkFBQSxTQUFBTSxHQUNBQSxFQUFBQyxJQUFBLDhCQUNBLHFMQ2pEQSxXQUFBdlYsUUFBQUMsT0FBQSxhQUFBK1UsS0FBQSxpQkFBQSxTQUFBTSxHQUFBQSxFQUFBQyxJQUFBLGlDQUNBIiwiZmlsZSI6IkFGQmNsaWVudC5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqIFxuICogQnVnczogSW5wdXQgd2l0aCBDYWxsYmFjayBTSE9VTEQgQkUgZ2V0ICdyZXF1aXJlZCcgY2xhc3NcbiAqIFxuICogcmVmOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvbW91c2VvdmVyXG4gKiBcbiAqIHVzYWdlOiBcblVzYWdlICA8cmFuZ2Utc2xpZGVyPlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICA8cmFuZ2Utc2xpZGVyXG4gICAgICBpZD1cIm15LXNsaWRlci1uYW1lXCIgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHVzZSBhcyBhbiBhcmd1bWVudCB0byBjYWxsYmFja1xuICAgICAgY2xhc3M9XCJteS1jdXN0b20tY2xhc3NcIiAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCBjbGFzcyBpcyBpYnotcmFuZ2Utc2xpZGVyXG4gICAgICBwbGFjZWhvbGRlcj1cIlRyYWNrIERhdGUgU2VsZWN0aW9uXCIgICAgICAvLyBwbGFjZSBob2xkZXIgZm9yIGRhdGUgcmVhZG9ubHkgaW5wdXQgem9uZVxuXG4gICAgICA8IS0tIEZvdW5kYXRpb24gY2xhc3NlcyAtLT5cbiAgICAgIGNsYXNzPVwicmFkaXVzXCIgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIFp1cmIgZm91bmRhdGlvbiBkb2MgZm9yIGZ1cnRoZXIgaW5mby5cbiAgICAgIGNsYXNzPVwiaWJ6LWhhbmRsZS1kaXNwbGF5XCIgICAgICAgICAgICAgIC8vIGluY3JlYXNlIGhhbmRsZSB3aWR0aCB0byBob2xkIHNsaWRlciBjdXJyZW50IHZhbHVlXG5cbiAgICAgIDwhLS0gQW5ndWxhciBTY29wZSBWYXJpYWJsZXMgLS0+XG4gICAgICBjYWxsYmFjaz1cIm15Q2FsbEJhY2tcIiAgICAgICAgICAgICAgICAgICAgLy8gJHNjb3BlLm15Q2FsbEJhY2soc2xpZGVyaGFuZGxlKSBpcyBjYWxsZWQgd2hlbiBldmVyIHNsaWRlciBoYW5kbGUgYmx1clxuICAgICAgZm9ybWF0dGVyPVwiU2xpZGVyRm9ybWF0Q0JcIiAgICAgICAgICAgICAgIC8vICRzY29wZS5teUZvcm1hdHRlcih2YWx1ZSwgc2xpZGVyaWQpIHdoZW4gZXhpc3QgaXMgY2FsbCB3aGVuIGV2ZXIgc2xpZGVyIGhhbmRsZSBtb3Zlcy4gU2hvdWxkIHJldHVybiBleHRlcm5hbCBmb3JtIG9mIHNsaWRlciB2YWx1ZS5cbiAgICAgIG5nLW1vZGVsPVwieHh4eHh4XCIgICAgICAgICAgICAgICAgICAgICAgICAvLyB4eHggTXVzdCBiZSBkZWZpbmVkLCBzY3JpcHQgd2lsbCBzdG9yZSBhIG5ldyBSYW5nZXJPYmplY3Qgd2l0aGluIHByb3ZpZGVkIG5nLW1vZGVsIHZhcmlhYmxlLlxuICAgICAgc3RhcnQtYXQ9XCJTY29wZVZhclwiICAgICAgICAgICAgICAgICAgICAgIC8vIER5bmFtaWMgbGltaXRhdGlvbiB3aGVuIHNsaWRlciBpcyBjb25zdHJhaW5zIGJ5IGFuIGV4dGVybmFsIGNvbXBvbmFudCBbZXg6IGNoZWNrIGluL291dF1cbiAgICAgIHN0b3AtYXQ9XCJTY29wZVZhclwiICAgICAgICAgICAgICAgICAgICAgICAvLyBJZGVtIGJ1dCBmb3IgZW5kLlxuXG4gICAgICA8IS0tIEFuZ3VsYXIgRGlyZWN0aXZlIEF0dHJpYnV0ZXMgLS0+XG4gICAgICBub3QtbGVzcz1cImludGVnZXJcIiAgICAgICAgICAgICAgICAgICAgICAgLy8gRml4ZWQgc3RhcnRpbmcgdmFsdWUgZm9yIHNsaWRlciBbZGVmYXVsdCAwXVxuICAgICAgbm90LW1vcmU9XCJpbnRlZ2VyXCIgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpeGVkIGVuZCB2YWx1ZSBmb3Igc2xpZGVycyBbZGVmYXVsdCAxMDBdXG4gICAgICBieS1zdGVwPVwiKy1pbnRlZ2VyXCIgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgYnktc3RlcCBpcyA+MCB0aGVuIHNsaWRlciB1c2UgaXQgYXMgc3RlcC12YWx1ZSwgd2hlbiBuZWdhdGl2ZSB1c2UgaXQgZm9yIGRlY2ltYWwgcHJlY2lzaW9uXG4gICAgICBkaXNwbGF5LXRhcmdldD1cImhhbmRsZVwiICAgICAgICAgICAgICAgICAgLy8gZGlzcGxheSBzbGlkZXIgZXh0ZXJuYWwgZm9ybWF0ZWQgdmFsdWUgaW4gdGhlIGhhbmRsZSBbcmVxdWlyZXIgY2Fsc3M9XCJpYnotaGFuZGxlLWRpc3BsYXlcIl1cbiAgICAgIGR1YWwtaGFuZGxlcz0ndHJ1ZScgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGEgc2Vjb25kIGhhbmRsZSB0byBzbGlkZXIgZm9yIG1pbi9tYXggcmFuZ2VcbiAgICAgIGluaXRpYWw9J3ZhbHVlfFtzdGFydC9zdG9wXScgICAgICAgICAgICAgLy8gc2xpZGVyIGluaXRpYWwgdmFsdWUgW2R1YWwtaGFuZGxlc10gbWF5IGhhdmUgaW5pdGlhbCB2YWx1ZXNcbiAgIC8+PC9yYW5nZS1zbGlkZXI+XG4gKi9cblxuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbnZhciBSYW5nZVNsaWRlciA9IGFuZ3VsYXIubW9kdWxlKCdSYW5nZVNsaWRlcicsW10pO1xuXG5mdW5jdGlvbiBSYW5nZVNsaWRlckhhbmRsZSAoc2NvcGUpIHtcbiAgICB2YXIgaW50ZXJuYWxzID0gW107XG4gICAgdmFyIGV4dGVybmFscyA9IFtdO1xuXG4gICAgdGhpcy5nZXRJZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NvcGUuc2xpZGVyaWQ7XG4gICAgfTtcblxuICAgIHRoaXMuZ2V0Q2JIYW5kbGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNjb3BlLmNiaGFuZGxlO1xuICAgIH07XG5cbiAgICB0aGlzLmdldFZpZXc9IGZ1bmN0aW9uIChoYW5kbGUpIHtcbiAgICAgICAgaWYgKCFoYW5kbGUpIGhhbmRsZSA9IDA7XG5cbiAgICAgICAgLy8gaWYgdmFsdWUgZGlkIG5vdCBjaGFuZ2UgcmV0dXJuIGN1cnJlbnQgZXh0ZXJuYWwgcmVwcmVzZW50YXRpb25cbiAgICAgICAgaWYgKHNjb3BlLnZhbHVlW2hhbmRsZV0gPT09IGludGVybmFsc1toYW5kbGVdKSByZXR1cm4gZXh0ZXJuYWxzW2hhbmRsZV07XG5cbiAgICAgICAgLy8gYnVpbGQgZXh0ZXJuYWwgcmVwcmVzZW50YXRpb24gYW5kIHNhdmUgaXQgZm9yIGZ1cnRoZXIgcmVxdWVzdHNcbiAgICAgICAgaW50ZXJuYWxzW2hhbmRsZV0gPSBzY29wZS52YWx1ZVtoYW5kbGVdO1xuICAgICAgICBpZiAoc2NvcGUuZm9ybWF0dGVyKSBleHRlcm5hbHNbaGFuZGxlXSA9IHNjb3BlLmZvcm1hdHRlcihzY29wZS52YWx1ZVtoYW5kbGVdLCBzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgZWxzZSAgZXh0ZXJuYWxzW2hhbmRsZV0gPSBzY29wZS52YWx1ZVtoYW5kbGVdO1xuXG4gICAgICAgIHJldHVybiBleHRlcm5hbHNbaGFuZGxlXTtcbiAgICB9O1xuXG4gICAgdGhpcy51cGRhdGVDbGFzcyA9IGZ1bmN0aW9uIChjbGFzc2UsIHN0YXR1cykge1xuICAgICAgIHNjb3BlLnVwZGF0ZUNsYXNzIChjbGFzc2UsIHN0YXR1cyk7XG4gICAgfTtcblxuICAgIHRoaXMuZm9yY2VSZWZyZXNoID0gZnVuY3Rpb24gKHRpbWVyKSB7XG4gICAgICAgc2NvcGUuZm9yY2VSZWZyZXNoKHRpbWVyKTtcbiAgICB9O1xuXG4gICAgdGhpcy5nZXRWYWx1ZT0gZnVuY3Rpb24gKGhhbmRsZSkge1xuICAgICAgICBpZiAoIWhhbmRsZSkgaGFuZGxlID0gMDtcbiAgICAgICAgcmV0dXJuIHNjb3BlLnZhbHVlW2hhbmRsZV07XG4gICAgfTtcblxuICAgIHRoaXMuZ2V0UmVsYXRpdmU9IGZ1bmN0aW9uIChoYW5kbGUpIHtcbiAgICAgICAgaWYgKCFoYW5kbGUpIGhhbmRsZSA9IDA7XG4gICAgICAgIHJldHVybiBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdO1xuICAgIH07XG5cbiAgICB0aGlzLnNldFZhbHVlPSBmdW5jdGlvbiAodmFsdWUsIGhhbmRsZSkge1xuICAgICAgICBpZiAoIWhhbmRsZSkgaGFuZGxlID0gMDtcbiAgICAgICAgc2NvcGUuc2V0VmFsdWUgKHZhbHVlLCBoYW5kbGUpO1xuICAgIH07XG5cbiAgICB0aGlzLnNldERpc2FibGU9IGZ1bmN0aW9uIChmbGFnKSB7XG4gICAgICAgIHNjb3BlLnNldERpc2FibGUoZmxhZyk7XG4gICAgfTtcbn1cblxuUmFuZ2VTbGlkZXIuZGlyZWN0aXZlKCdyYW5nZVNsaWRlcicsIFtcIiRsb2dcIiwgXCIkZG9jdW1lbnRcIiwgXCIkdGltZW91dFwiLCBmdW5jdGlvbiAoJGxvZywgJGRvY3VtZW50LCAkdGltZW91dCkge1xuXG4gICAgdmFyIHRlbXBsYXRlPSAnPGRpdiBjbGFzcz1cImliei1yYW5nZS1zbGlkZXIgcmFuZ2Utc2xpZGVyXCIgdGl0bGU9XCJ7e3RpdGxlfX1cImRhdGEtc2xpZGVyPicrXG4gICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJyYW5nZS1zbGlkZXItaGFuZGxlIGhhbmRsZS1taW5cIiBuZy1tb3VzZWRvd249XCJoYW5kbGVDQigkZXZlbnQsMClcIiBuZy1mb2N1cz1cImZvY3VzQ0IodHJ1ZSlcIiBuZy1ibHVyPVwiZm9jdXNDQihmYWxzZSlcIiByb2xlPVwic2xpZGVyXCIgdGFiaW5kZXg9XCIwXCI+PC9zcGFuPicrXG4gICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJoYW5kbGUtbWF4XCIgbmctbW91c2Vkb3duPVwiaGFuZGxlQ0IoJGV2ZW50LDEpXCIgbmctZm9jdXM9XCJmb2N1c0NCKHRydWUpXCIgbmctYmx1cj1cImZvY3VzQ0IoZmFsc2UpXCIgcm9sZT1cInNsaWRlclwiIHRhYmluZGV4PVwiMFwiPjwvc3Bhbj4nK1xuICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwicmFuZ2Utc2xpZGVyLWFjdGl2ZS1zZWdtZW50XCI+PC9zcGFuPicrXG4gICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJpYnotcmFuZ2Utc2xpZGVyLXN0YXJ0XCIgPjwvc3Bhbj4gJytcbiAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImliei1yYW5nZS1zbGlkZXItc3RvcFwiPjwvc3Bhbj4gJytcbiAgICAgICAgICAgICAgICAgICc8aW5wdXQgaWQ9e3tzbGlkZXJpZH19IHR5cGU9XCJoaWRkZW5cIj4nK1xuICAgICAgICAgICAgICAgICAgJzwvZGl2Pic7XG5cblxuICAgIGZ1bmN0aW9uIGxpbmsgKHNjb3BlLCBlbGVtZW50LCBhdHRycywgbW9kZWwpIHtcbiAgICAgICAgLy8gZnVsbCBpbml0aWFsaXNhdGlvbiBvZiBzbGlkZXIgZnJvbSBhIHNpbmdsZSBvYmplY3RcbiAgICAgICAgc2NvcGUuaW5pdFdpZGdldCA9IGZ1bmN0aW9uIChpbml0dmFsdWVzKSB7XG5cbiAgICAgICAgICAgIGlmIChpbml0dmFsdWVzLmJ5U3RlcCkgIHNjb3BlLmJ5U3RlcCAgPSBwYXJzZUludChpbml0dmFsdWVzLmJ5U3RlcCk7XG4gICAgICAgICAgICBpZiAoaW5pdHZhbHVlcy5ub3RNb3JlKSBzY29wZS5ub3RNb3JlID0gcGFyc2VJbnQoaW5pdHZhbHVlcy5ub3RNb3JlKTtcbiAgICAgICAgICAgIGlmIChpbml0dmFsdWVzLm5vdExlc3MpIHNjb3BlLm5vdExlc3MgPSBwYXJzZUludChpbml0dmFsdWVzLm5vdExlc3MpO1xuICAgICAgICAgICAgaWYgKGluaXR2YWx1ZXMuaWQpICAgICAgc2NvcGUuc2xpZGVyaWQ9IGluaXR2YWx1ZXMuaWQ7XG5cbiAgICAgICAgICAgIC8vIGh1Z2VseSBidXQgaW4gc29tZSBjYXNlIERPTSBpcyBub3QgZmluaXNoIHdoZW4gd2UgdHJ5IHRvIHNldCB2YWx1ZXMgISEhXG4gICAgICAgICAgICBpZiAoaW5pdHZhbHVlcy52YWx1ZSAhPT0gdW5kZWZpbmVkKSAgIHtcbiAgICAgICAgICAgICAgICBzY29wZS52YWx1ZSA9IGluaXR2YWx1ZXMudmFsdWU7XG4gICAgICAgICAgICAgICAgc2NvcGUuZm9yY2VSZWZyZXNoICg1MCk7IC8vIHdhaXQgNTBtcyBmb3IgRE9NIHRvIGJlIHJlYWR5XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gdGhpcyBmdW5jdGlvbiByZWNvbXB1dGUgc2xpZGUgcG9zaXRpb25pbmdcbiAgICAgICAgc2NvcGUuZm9yY2VSZWZyZXNoID0gZnVuY3Rpb24gKHRpbWVyKSB7XG4gICAgICAgICAgIHZhciB2YWx1ZSA9IHNjb3BlLnZhbHVlO1xuICAgICAgICAgICBzY29wZS52YWx1ZSA9IFt1bmRlZmluZWQsdW5kZWZpbmVkXTtcbiAgICAgICAgICAgJHRpbWVvdXQgKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgc2NvcGUuc2V0VmFsdWUodmFsdWVbMF0sMCk7XG4gICAgICAgICAgICAgICBpZiAoc2NvcGUuZHVhbCkgIHNjb3BlLnNldFZhbHVlKHZhbHVlWzFdLDEpO1xuICAgICAgICAgICB9LCB0aW1lcik7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gaGFuZGxlciB0byBjaGFuZ2UgY2xhc3MgZnJvbSBzbGlkZXIgaGFuZGxlXG4gICAgICAgIHNjb3BlLnVwZGF0ZUNsYXNzID0gZnVuY3Rpb24gKGNsYXNzZSwgc3RhdHVzKSB7XG5cbiAgICAgICAgICAgIGlmIChzdGF0dXMpIGVsZW1lbnQuYWRkQ2xhc3MgKGNsYXNzZSk7XG4gICAgICAgICAgICBlbHNlICBlbGVtZW50LnJlbW92ZUNsYXNzIChjbGFzc2UpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLnNldERpc2FibGUgPSBmdW5jdGlvbiAoZGlzYWJsZWQpIHtcblxuICAgICAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5hZGRDbGFzcyAoXCJkaXNhYmxlXCIpO1xuICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbMF0uY3NzICgndmlzaWJpbGl0eScsJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS5kdWFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbMV0uY3NzICgndmlzaWJpbGl0eScsJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVDbGFzcyAoXCJkaXNhYmxlXCIpO1xuICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbMF0uY3NzICgndmlzaWJpbGl0eScsJ3Zpc2libGUnKTtcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuZHVhbCkgc2NvcGUuaGFuZGxlc1sxXS5jc3MgKCd2aXNpYmlsaXR5JywndmlzaWJsZScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUubm9ybWFsaXplID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICAgICAgdmFyIHJhbmdlID0gc2NvcGUubm90TW9yZSAtIHNjb3BlLm5vdExlc3M7XG4gICAgICAgICAgICB2YXIgcG9pbnQgPSB2YWx1ZSAqIHJhbmdlO1xuXG4gICAgICAgICAgICAvLyBpZiBzdGVwIGlzIHBvc2l0aXZlIGxldCdzIHJvdW5kIHN0ZXAgYnkgc3RlcFxuICAgICAgICAgICAgaWYgKHNjb3BlLmJ5U3RlcCA+ICAwKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1vZCA9IChwb2ludCAtIChwb2ludCAlIHNjb3BlLmJ5U3RlcCkpIC8gc2NvcGUuYnlTdGVwO1xuICAgICAgICAgICAgICAgIHZhciByZW0gPSBwb2ludCAlIHNjb3BlLmJ5U3RlcDtcblxuICAgICAgICAgICAgICAgIHZhciByb3VuZCA9IChyZW0gPj0gc2NvcGUuYnlTdGVwICogMC41ID8gc2NvcGUuYnlTdGVwIDogMCk7XG4gICAgICAgICAgICAgICAgcmVzdWx0PSAobW9kICogc2NvcGUuYnlTdGVwICsgcm91bmQpICsgc2NvcGUubm90TGVzcztcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nIChcInJhbmdlPSVkIHZhbHVlPSVkIHBvaW50PSVkIG1vZD0lZCByZW09JWQgcm91bmQ9JWQgcmVzdWx0PSVkXCIsIHJhbmdlLCB2YWx1ZSwgcG9pbnQsIG1vZCwgcmVtLCByb3VuZCwgcmVzdWx0KVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGlmIHN0ZXAgaXMgbmVnYXRpdmUgcmV0dXJuIHJvdW5kIHRvIGFza2VkIGRlY2ltYWxcbiAgICAgICAgICAgIGlmIChzY29wZS5ieVN0ZXAgPCAgMCkge1xuICAgICAgICAgICAgICAgIHZhciBwb3dlciAgPSAgTWF0aC5wb3cgKDEwLChzY29wZS5ieVN0ZXAgKiAtMSkpO1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNjb3BlLm5vdExlc3MgKyBwYXJzZUludCAocG9pbnQgKiBwb3dlcikgLyBwb3dlcjtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHJlc3VsdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGlmIHN0ZXAgaXMgbnVsbCByZXR1cm4gZnVsbCB2YWx1ZVxuICAgICAgICAgICAgcmV0dXJuIHBvaW50O1xuICAgICAgIH07XG5cbiAgICAgICAgLy8gcmV0dXJuIGN1cnJlbnQgdmFsdWVcbiAgICAgICAgc2NvcGUuZ2V0VmFsdWUgPSBmdW5jdGlvbiAob2Zmc2V0LCBoYW5kbGUpIHtcbiAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIHNjb3BlLnJlbGF0aXZlW2hhbmRsZV0gPSAob2Zmc2V0IC0gc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpIC8gKHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IC0gc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdID0gb2Zmc2V0IC8gIChzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC0gc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBuZXd2YWx1ZSA9IHNjb3BlLm5vcm1hbGl6ZSAoc2NvcGUucmVsYXRpdmVbaGFuZGxlXSk7XG5cblxuICAgICAgICAgICAgLy8gaWYgaW50ZXJuYWwgdmFsdWUgY2hhbmdlIHVwZGF0ZSBvciBtb2RlbFxuICAgICAgICAgICAgaWYgKG5ld3ZhbHVlICE9PSBzY29wZS52YWx1ZVtoYW5kbGVdKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5ld3ZhbHVlIDwgc2NvcGUuc3RhcnRWYWx1ZSkgbmV3dmFsdWU9c2NvcGUuc3RhcnRWYWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAobmV3dmFsdWUgPiBzY29wZS5zdG9wVmFsdWUpICBuZXd2YWx1ZT1zY29wZS5zdG9wVmFsdWU7XG5cblxuICAgICAgICAgICAgICAgIGlmIChzY29wZS5mb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUudmlld1ZhbHVlID0gc2NvcGUuZm9ybWF0dGVyIChuZXd2YWx1ZSwgc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUudmlld1ZhbHVlID0gbmV3dmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzY29wZS5kaXNwbGF5c1toYW5kbGVdKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmRpc3BsYXlzW2hhbmRsZV0uaHRtbCAoc2NvcGUudmlld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgZXh0ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsXG4gICAgICAgICAgICAgICAgc2NvcGUudmFsdWVbaGFuZGxlXSA9IG5ld3ZhbHVlO1xuICAgICAgICAgICAgICAgIGlmIChtb2RlbCkgbW9kZWwuJHNldFZpZXdWYWx1ZSAoc2NvcGUudmlld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICBzY29wZS4kYXBwbHkoKTtcbiAgICAgICAgICAgICAgICBpZiAobmV3dmFsdWUgPiBzY29wZS5zdGFydFZhbHVlICYmIG5ld3ZhbHVlIDwgc2NvcGUuc3RvcFZhbHVlKSBzY29wZS50cmFuc2xhdGUob2Zmc2V0LCBoYW5kbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG5cbiAgICAgICAgc2NvcGUuc2V0U3RhcnQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBvZmZzZXQ7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+IHNjb3BlLnZhbHVlWzBdKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzY29wZS5kdWFsKSBzY29wZS5zZXRWYWx1ZSAodmFsdWUsMCk7XG4gICAgICAgICAgICAgICAgZWxzZSBzY29wZS5zZXRWYWx1ZSAodmFsdWUsMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ICogKHZhbHVlIC0gc2NvcGUubm90TGVzcykgLyAoc2NvcGUubm90TW9yZSAtIHNjb3BlLm5vdExlc3MpO1xuICAgICAgICAgICAgICAgIHNjb3BlLnN0YXJ0LmNzcygnaGVpZ2h0JyxvZmZzZXQgKyAncHgnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAqICh2YWx1ZSAtIHNjb3BlLm5vdExlc3MpIC8gKHNjb3BlLm5vdE1vcmUgLSBzY29wZS5ub3RMZXNzKTtcbiAgICAgICAgICAgICAgICBzY29wZS5zdGFydC5jc3MoJ3dpZHRoJyxvZmZzZXQgKyAncHgnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2NvcGUuc3RhcnRWYWx1ZT0gdmFsdWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUuc2V0U3RvcCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFyIG9mZnNldDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHZhbHVlIDwgc2NvcGUudmFsdWVbMF0pIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNjb3BlLmR1YWwpIHNjb3BlLnNldFZhbHVlICh2YWx1ZSwwKTtcbiAgICAgICAgICAgICAgICBlbHNlIHNjb3BlLnNldFZhbHVlICh2YWx1ZSwxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgKiAodmFsdWUgLSBzY29wZS5ub3RMZXNzKSAvIChzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcyk7XG4gICAgICAgICAgICAgICAgc2NvcGUuc3RhcnQuY3NzKCdoZWlnaHQnLG9mZnNldCArICdweCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICogKHZhbHVlIC0gc2NvcGUubm90TGVzcykgLyAoc2NvcGUubm90TW9yZSAtIHNjb3BlLm5vdExlc3MpO1xuICAgICAgICAgICAgICAgIHNjb3BlLnN0b3AuY3NzKHsncmlnaHQnOiAwLCAnd2lkdGgnOiAoc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAgLSBvZmZzZXQpICsgJ3B4J30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzY29wZS5zdG9wVmFsdWU9IHZhbHVlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLnRyYW5zbGF0ZSA9IGZ1bmN0aW9uIChvZmZzZXQsIGhhbmRsZSkge1xuICAgICAgICAgICAgdmFyIHN0YXJ0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICAvLyB0YWtlIGhhbmRsZSBzaXplIGluIGFjY291bnQgdG8gY29tcHV0ZSBtaWRkbGVcbiAgICAgICAgICAgICAgICB2YXIgdm9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IC0gb2Zmc2V0O1xuXG4gICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1toYW5kbGVdLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICctd2Via2l0LXRyYW5zZm9ybSc6ICd0cmFuc2xhdGVZKCcgKyB2b2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICctbW96LXRyYW5zZm9ybSc6ICd0cmFuc2xhdGVZKCcgKyB2b2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICctbXMtdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVkoJyArIHZvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJy1vLXRyYW5zZm9ybSc6ICd0cmFuc2xhdGVZKCcgKyB2b2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICd0cmFuc2Zvcm0nOiAndHJhbnNsYXRlWSgnICsgdm9mZnNldCArICdweCknXG4gICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgIGlmICghc2NvcGUuZHVhbCkgc2NvcGUuc2xpZGVyLmNzcygnaGVpZ2h0Jywgb2Zmc2V0ICsgJ3B4Jyk7XG4gICAgICAgICAgICAgICBlbHNlIGlmIChzY29wZS5yZWxhdGl2ZVsxXSAmJiBzY29wZS5yZWxhdGl2ZVswXSkge1xuICAgICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPSAoc2NvcGUucmVsYXRpdmVbMV0gLSBzY29wZS5yZWxhdGl2ZVswXSkgKiAgc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgc3RhcnQgID0gKHNjb3BlLnJlbGF0aXZlWzBdICogIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICBzY29wZS5zbGlkZXIuY3NzICh7J2JvdHRvbSc6IHN0YXJ0KydweCcsJ2hlaWdodCc6IGhlaWdodCArICdweCd9KTtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzW2hhbmRsZV0uY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgJy13ZWJraXQtdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVgoJyArIG9mZnNldCArICdweCknLFxuICAgICAgICAgICAgICAgICAgICAnLW1vei10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgnICsgb2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICctbXMtdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVgoJyArIG9mZnNldCArICdweCknLFxuICAgICAgICAgICAgICAgICAgICAnLW8tdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVgoJyArIG9mZnNldCArICdweCknLFxuICAgICAgICAgICAgICAgICAgICAndHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVgoJyArIG9mZnNldCArICdweCknXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCFzY29wZS5kdWFsKSBzY29wZS5zbGlkZXIuY3NzKCd3aWR0aCcsb2Zmc2V0ICsgJ3B4Jyk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2NvcGUucmVsYXRpdmVbMV0gJiYgc2NvcGUucmVsYXRpdmVbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHdpZHRoID0gKHNjb3BlLnJlbGF0aXZlWzFdIC0gc2NvcGUucmVsYXRpdmVbMF0pICogIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gKHNjb3BlLnJlbGF0aXZlWzBdICogIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5zbGlkZXIuY3NzICh7J2xlZnQnOiBzdGFydCsncHgnLCd3aWR0aCc6IHdpZHRoICsgJ3B4J30pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBwb3NpdGlvbiBoYW5kbGUgb24gdGhlIGJhciBkZXBlbmRpbmcgYSBnaXZlbiB2YWx1ZVxuICAgICAgICBzY29wZS5zZXRWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSAsIGhhbmRsZSkge1xuICAgICAgICAgICAgdmFyIG9mZnNldDtcblxuICAgICAgICAgICAgLy8gaWYgdmFsdWUgZGlkIG5vdCBjaGFuZ2UgaWdub3JlXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHNjb3BlLnZhbHVlW2hhbmRsZV0pIHJldHVybjtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSAgIHZhbHVlPTA7XG4gICAgICAgICAgICBpZiAodmFsdWUgPiBzY29wZS5ub3RNb3JlKSB2YWx1ZT1zY29wZS5ub3RNb3JlO1xuICAgICAgICAgICAgaWYgKHZhbHVlIDwgc2NvcGUubm90TGVzcykgdmFsdWU9c2NvcGUubm90TGVzcztcblxuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUucmVsYXRpdmVbaGFuZGxlXSA9ICh2YWx1ZSAtIHNjb3BlLm5vdExlc3MpIC8gKHNjb3BlLm5vdE1vcmUgLSBzY29wZS5ub3RMZXNzKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFuZGxlID09PSAwKSBvZmZzZXQgPSAoc2NvcGUucmVsYXRpdmVbaGFuZGxlXSAqIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KSArIHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LzI7XG4gICAgICAgICAgICAgICAgaWYgKGhhbmRsZSA9PT0gMSkgb2Zmc2V0ID0gc2NvcGUucmVsYXRpdmVbaGFuZGxlXSAqIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjb3BlLnJlbGF0aXZlW2hhbmRsZV0gPSAodmFsdWUgLSBzY29wZS5ub3RMZXNzKSAvIChzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcyk7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2NvcGUucmVsYXRpdmVbaGFuZGxlXSAqICAoc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtIHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzY29wZS50cmFuc2xhdGUgKG9mZnNldCxoYW5kbGUpO1xuICAgICAgICAgICAgc2NvcGUudmFsdWVbaGFuZGxlXSA9IHZhbHVlO1xuXG4gICAgICAgICAgICBpZiAoc2NvcGUuZm9ybWF0dGVyKSB7XG4gICAgICAgICAgICAgICAgLy8gd2hlbiBjYWxsIHRocm91Z2ggc2V0VmFsdWUgd2UgZG8gbm90IHBhc3MgY2JIYW5kbGVcbiAgICAgICAgICAgICAgICBzY29wZS52aWV3VmFsdWUgPSBzY29wZS5mb3JtYXR0ZXIgKHZhbHVlLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzY29wZS52aWV3VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG1vZGVsKSBtb2RlbC4kc2V0Vmlld1ZhbHVlKCBzY29wZS52aWV3VmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoc2NvcGUuZGlzcGxheXNbaGFuZGxlXSkge1xuICAgICAgICAgICAgICAgIHNjb3BlLmRpc3BsYXlzW2hhbmRsZV0uaHRtbCAoc2NvcGUudmlld1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuXG4gICAgICAgIC8vIE1pbmltYWwga2V5c3Ryb2tlIGhhbmRsaW5nIHRvIGNsb3NlIHBpY2tlciB3aXRoIEVTQyBbc2NvcGUuYWN0aWYgaXMgY3VycmVudCBoYW5kbGUgaW5kZXhdXG4gICAgICAgIHNjb3BlLmtleWRvd249ICBmdW5jdGlvbihlKXtcblxuICAgICAgICAgICAgc3dpdGNoKGUua2V5Q29kZSl7XG4gICAgICAgICAgICAgICAgY2FzZSAzOTogLy8gUmlnaHRcbiAgICAgICAgICAgICAgICBjYXNlIDM4OiAvLyB1cFxuICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmJ5U3RlcCA+IDApIHNjb3BlLiRhcHBseShzY29wZS5zZXRWYWx1ZSAoKHNjb3BlLnZhbHVlW3Njb3BlLmFjdGlmXStzY29wZS5ieVN0ZXApLCBzY29wZS5hY3RpZikpO1xuICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmJ5U3RlcCA8IDApIHNjb3BlLiRhcHBseShzY29wZS5zZXRWYWx1ZSAoKHNjb3BlLnZhbHVlW3Njb3BlLmFjdGlmXSsoMSAvIE1hdGgucG93KDEwLCBzY29wZS5ieVN0ZXAqLTEpKSksc2NvcGUuYWN0aWYpKTtcbiAgICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5jYWxsYmFjaykgIHNjb3BlLmNhbGxiYWNrIChzY29wZS52YWx1ZVtzY29wZS5hY3RpZl0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAzNzogLy8gbGVmdFxuICAgICAgICAgICAgICAgIGNhc2UgNDA6IC8vIGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmJ5U3RlcCA+IDApIHNjb3BlLiRhcHBseShzY29wZS5zZXRWYWx1ZSAoKHNjb3BlLnZhbHVlW3Njb3BlLmFjdGlmXSAtIHNjb3BlLmJ5U3RlcCksIHNjb3BlLmFjdGlmKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5ieVN0ZXAgPCAwKSBzY29wZS4kYXBwbHkoc2NvcGUuc2V0VmFsdWUgKChzY29wZS52YWx1ZVtzY29wZS5hY3RpZl0gLSAoMSAvIE1hdGgucG93KDEwLCBzY29wZS5ieVN0ZXAqLTEpKSksc2NvcGUuYWN0aWYpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmNhbGxiYWNrKSAgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLnZhbHVlW3Njb3BlLmFjdGlmXSwgc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjc6IC8vIGVzY1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzW3Njb3BlLmFjdGlmXVswXS5ibHVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUubW92ZUhhbmRsZSA9IGZ1bmN0aW9uIChoYW5kbGUsIGNsaWVudFgsIGNsaWVudFkpIHtcbiAgICAgICAgICAgIHZhciBvZmZzZXQ7XG4gICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSAtIGNsaWVudFk7XG4gICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KSBvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgICAgICAgICBpZiAob2Zmc2V0IDwgc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBjbGllbnRYIC0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xuXG4gICAgICAgICAgICAgICAgaWYgKG9mZnNldCA8IDApIG9mZnNldCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKChjbGllbnRYICsgc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCkgPiBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggLSBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2NvcGUuZ2V0VmFsdWUgIChvZmZzZXQsIGhhbmRsZSk7XG5cbiAgICAgICAgICAgIC8vIHByZXZlbnQgZHVhbCBoYW5kbGUgdG8gY3Jvc3NcbiAgICAgICAgICAgIGlmIChzY29wZS5kdWFsICYmIHNjb3BlLnZhbHVlIFswXSA+IHNjb3BlLnZhbHVlWzFdKSB7XG4gICAgICAgICAgICAgICAgaWYgKGhhbmRsZSA9PT0gMCkgc2NvcGUuc2V0VmFsdWUgKHNjb3BlLnZhbHVlWzBdICwgMSk7XG4gICAgICAgICAgICAgICAgZWxzZSBzY29wZS5zZXRWYWx1ZShzY29wZS52YWx1ZVsxXSwwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuXG4gICAgICAgIHNjb3BlLmZvY3VzQ0IgPSBmdW5jdGlvbiAoaW5zaWRlKSB7XG4gICAgICAgICAgICBpZiAoaW5zaWRlKSB7XG4gICAgICAgICAgICAgICAgJGRvY3VtZW50Lm9uKCdrZXlkb3duJyxzY29wZS5rZXlkb3duKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJGRvY3VtZW50LnVuYmluZCgna2V5ZG93bicsc2NvcGUua2V5ZG93bik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gYmFyIHdhcyB0b3VjaCBsZXQgbW92ZSBoYW5kbGUgdG8gdGhpcyBwb2ludFxuICAgICAgICBzY29wZS50b3VjaEJhckNCID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICB2YXIgaGFuZGxlPTA7XG4gICAgICAgICAgICB2YXIgcmVsYXRpdmU7XG4gICAgICAgICAgICB2YXIgdG91Y2hlcyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzO1xuICAgICAgICAgICAgdmFyIG9sZHZhbHVlID0gc2NvcGUudmFsdWVbaGFuZGxlXTtcblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSB0d28gaGFuZGxlcyBzZWxlY3QgY2xvc2VzdCBvbmUgZnJvbSB0b3VjaCBwb2ludFxuICAgICAgICAgICAgaWYgKHNjb3BlLmR1YWwpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIHJlbGF0aXZlID0gKHRvdWNoZXNbMF0ucGFnZVkgLSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSkgLyBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgICAgICAgICBlbHNlIHJlbGF0aXZlPSAodG91Y2hlc1swXS5wYWdlWCAtIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCkgLyBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXG4gICAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlMCA9IE1hdGguYWJzKHJlbGF0aXZlIC0gc2NvcGUucmVsYXRpdmVbMF0pO1xuICAgICAgICAgICAgICAgIHZhciBkaXN0YW5jZTEgPSBNYXRoLmFicyhyZWxhdGl2ZSAtIHNjb3BlLnJlbGF0aXZlWzFdKTtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UxIDwgZGlzdGFuY2UwKSBoYW5kbGU9MTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbW92ZSBoYW5kbGUgdG8gbmV3IHBsYWNlXG4gICAgICAgICAgICBzY29wZS5tb3ZlSGFuZGxlIChoYW5kbGUsdG91Y2hlc1swXS5wYWdlWCwgdG91Y2hlc1swXS5wYWdlWSk7XG4gICAgICAgICAgICBpZiAoc2NvcGUuY2FsbGJhY2sgJiYgb2xkdmFsdWUgIT09IHNjb3BlLnZhbHVlW2hhbmRsZV0pIHNjb3BlLmNhbGxiYWNrIChzY29wZS52YWx1ZVtoYW5kbGVdLCBzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBoYW5kbGUgd2FzIHRvdWNoIGFuZCBkcmFnXG4gICAgICAgIHNjb3BlLnRvdWNoSGFuZGxlQ0IgPSBmdW5jdGlvbiAodG91Y2hldnQsIGhhbmRsZSkge1xuICAgICAgICAgICAgdmFyIG9sZHZhbHVlID0gc2NvcGUudmFsdWVbaGFuZGxlXTtcblxuICAgICAgICAgICAgdG91Y2hldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICRkb2N1bWVudC5vbigndG91Y2htb3ZlJyx0b3VjaG1vdmUpO1xuICAgICAgICAgICAgJGRvY3VtZW50Lm9uKCd0b3VjaGVuZCcgLHRvdWNoZW5kKTtcbiAgICAgICAgICAgIGVsZW1lbnQudW5iaW5kKCd0b3VjaHN0YXJ0Jywgc2NvcGUudG91Y2hCYXJDQik7XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIHRvdWNobW92ZShldmVudCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdmFyIHRvdWNoZXMgPSBldmVudC5jaGFuZ2VkVG91Y2hlcztcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpZHggPSAwOyBpZHggPCB0b3VjaGVzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUubW92ZUhhbmRsZSAoaGFuZGxlLHRvdWNoZXNbaWR4XS5wYWdlWCwgdG91Y2hlc1tpZHhdLnBhZ2VZKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIHRvdWNoZW5kKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAkZG9jdW1lbnQudW5iaW5kKCd0b3VjaG1vdmUnLHRvdWNobW92ZSk7XG4gICAgICAgICAgICAgICAkZG9jdW1lbnQudW5iaW5kKCd0b3VjaGVuZCcgLHRvdWNoZW5kKTtcbiAgICAgICAgICAgICAgIGVsZW1lbnQub24oJ3RvdWNoc3RhcnQnLCBzY29wZS50b3VjaEJhckNCKTtcblxuICAgICAgICAgICAgICAgIC8vIGlmIHZhbHVlIGNoYW5nZSBub3RpZnkgYXBwbGljYXRpb24gY2FsbGJhY2tcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuY2FsbGJhY2sgJiYgb2xkdmFsdWUgIT09IHNjb3BlLnZhbHVlW2hhbmRsZV0pIHNjb3BlLmNhbGxiYWNrIChzY29wZS52YWx1ZVtoYW5kbGVdLCBzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5oYW5kbGVDQiA9IGZ1bmN0aW9uIChjbGlja2V2ZW50LCBoYW5kbGUpIHtcblxuICAgICAgICAgICAgaWYgKGF0dHJzLmF1dG9tYXRpYykgcmV0dXJuO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICB2YXIgb2xkdmFsdWUgPSBzY29wZS52YWx1ZVtoYW5kbGVdO1xuICAgICAgICAgICAgLy8gcmVnaXN0ZXIgbW91c2UgZXZlbnQgdG8gdHJhY2sgaGFuZGxlXG4gICAgICAgICAgICBjbGlja2V2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICRkb2N1bWVudC5vbignbW91c2Vtb3ZlJyxtb3VzZW1vdmUpO1xuICAgICAgICAgICAgJGRvY3VtZW50Lm9uKCdtb3VzZXVwJywgbW91c2V1cCk7XG4gICAgICAgICAgICBzY29wZS5oYW5kbGVzW2hhbmRsZV1bMF0uZm9jdXMoKTtcbiAgICAgICAgICAgIHNjb3BlLmFjdGlmPWhhbmRsZTtcblxuICAgICAgICAgICAgLy8gc2xpZGVyIGhhbmRsZSBpcyBtb3ZpbmdcbiAgICAgICAgICAgIGZ1bmN0aW9uIG1vdXNlbW92ZShldmVudCkge1xuICAgICAgICAgICAgICAgIHNjb3BlLm1vdmVIYW5kbGUgKGhhbmRsZSwgZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIG1vdXNlIGlzIHVwIGRhbnMgbGVhdmUgc2xpZGVyIHNlbmQgcmVzaXplIGV2ZW50c1xuICAgICAgICAgICAgZnVuY3Rpb24gbW91c2V1cCgpIHtcbiAgICAgICAgICAgICAgICAkZG9jdW1lbnQudW5iaW5kKCdtb3VzZW1vdmUnLCBtb3VzZW1vdmUpO1xuICAgICAgICAgICAgICAgICRkb2N1bWVudC51bmJpbmQoJ21vdXNldXAnLCBtb3VzZXVwKTtcblxuICAgICAgICAgICAgICAgIC8vIGlmIHZhbHVlIGNoYW5nZSBub3RpZnkgYXBwbGljYXRpb24gY2FsbGJhY2tcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuY2FsbGJhY2sgJiYgb2xkdmFsdWUgIT09IHNjb3BlLnZhbHVlW2hhbmRsZV0pIHNjb3BlLmNhbGxiYWNrIChzY29wZS52YWx1ZVtoYW5kbGVdLCBzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBzaW11bGF0ZSBqcXVlcnkgZmluZCBieSBjbGFzc2VzIGNhcGFiaWxpdGllcyBbd2FybmluZyBvbmx5IHJldHVybiAxc3QgZWxlbWVudHNdXG4gICAgICAgIHNjb3BlLmZpbmQgPSBmdW5jdGlvbiAoc2VsZWN0LCBlbGVtKSB7XG4gICAgICAgICAgICB2YXIgZG9tZWxlbTtcblxuICAgICAgICAgICAgaWYgKGVsZW0pIGRvbWVsZW0gPSBlbGVtWzBdLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0KTtcbiAgICAgICAgICAgIGVsc2UgZG9tZWxlbSA9IGVsZW1lbnRbMF0ucXVlcnlTZWxlY3RvcihzZWxlY3QpO1xuXG4gICAgICAgICAgICB2YXIgYW5nZWxlbSA9IGFuZ3VsYXIuZWxlbWVudChkb21lbGVtKTtcbiAgICAgICAgICAgIHJldHVybiAoYW5nZWxlbSk7XG4gICAgICAgIH07XG5cblxuXG4gICAgICAgIHNjb3BlLmluaXRpYWxTZXR0aW5ncyA9IGZ1bmN0aW9uIChpbml0aWFsKSB7XG4gICAgICAgICAgICB2YXIgZGVjaW1hbF9wbGFjZXNfbWF0Y2hfcmVzdWx0O1xuICAgICAgICAgICAgc2NvcGUudmFsdWU9W107ICAvLyBzdG9yZSBsb3cvaGVpZ2h0IHZhbHVlIHdoZW4gdHdvIGhhbmRsZXNcbiAgICAgICAgICAgIHNjb3BlLnJlbGF0aXZlPVtdO1xuXG4gICAgICAgICAgICBpZiAoc2NvcGUucHJlY2lzaW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZGVjaW1hbF9wbGFjZXNfbWF0Y2hfcmVzdWx0ID0gKCcnICsgc2NvcGUuYnlTdGVwKS5tYXRjaCgvXFwuKFtcXGRdKikvKTtcbiAgICAgICAgICAgICAgICBzY29wZS5wcmVjaXNpb24gPSBkZWNpbWFsX3BsYWNlc19tYXRjaF9yZXN1bHQgJiYgZGVjaW1hbF9wbGFjZXNfbWF0Y2hfcmVzdWx0WzFdID8gZGVjaW1hbF9wbGFjZXNfbWF0Y2hfcmVzdWx0WzFdLmxlbmd0aCA6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHBvc2l0aW9uIGhhbmRsZSB0byBpbml0aWFsIHZhbHVlKHMpXG4gICAgICAgICAgICBlbGVtZW50Lm9uKCd0b3VjaHN0YXJ0Jywgc2NvcGUudG91Y2hCYXJDQik7XG4gICAgICAgICAgICBzY29wZS5oYW5kbGVzWzBdLm9uKCd0b3VjaHN0YXJ0JywgZnVuY3Rpb24oZXZ0KXtzY29wZS50b3VjaEhhbmRsZUNCKGV2dCwwKTt9KTtcblxuICAgICAgICAgICAgLy8gdGhpcyBzbGlkZXIgaGFzIHR3byBoYW5kbGVzIGxvdy9oaWdodFxuICAgICAgICAgICAgaWYgKHNjb3BlLmR1YWwpIHtcbiAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzWzFdLmFkZENsYXNzKCdyYW5nZS1zbGlkZXItaGFuZGxlJyk7XG4gICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1sxXS5vbigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGV2dCl7c2NvcGUudG91Y2hIYW5kbGVDQihldnQsMSk7fSk7XG4gICAgICAgICAgICAgICAgaWYgKCFzY29wZS5pbml0dmFsdWVzKSBzY29wZS5zZXRWYWx1ZSAoaW5pdGlhbFsxXSwxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBhbiBpbml0c3RhdGUgb2JqZWN0IGFwcGx5IGl0XG4gICAgICAgICAgICBpZiAoc2NvcGUuaW5pdHZhbHVlcykgc2NvcGUuaW5pdFdpZGdldCAoc2NvcGUuaW5pdHZhbHVlcyk7XG4gICAgICAgICAgICBlbHNlICAgc2NvcGUuc2V0VmFsdWUgKGluaXRpYWxbMF0sMCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNjb3BlLnNsaWRlcmlkICAgPSBhdHRycy5pZCB8fCBcInNsaWRlci1cIiArIHBhcnNlSW50IChNYXRoLnJhbmRvbSgpICogMTAwMCk7XG4gICAgICAgICAgICBzY29wZS5zdGFydFZhbHVlID0gLUluZmluaXR5O1xuICAgICAgICAgICAgc2NvcGUuc3RvcFZhbHVlICA9IEluZmluaXR5O1xuICAgICAgICAgICAgc2NvcGUuYnlTdGVwICAgPSBwYXJzZUludChhdHRycy5ieVN0ZXApIHx8IDE7XG4gICAgICAgICAgICBzY29wZS52ZXJ0aWNhbCA9IGF0dHJzLnZlcnRpY2FsICAgfHwgZmFsc2U7XG4gICAgICAgICAgICBzY29wZS5kdWFsICAgICA9IGF0dHJzLmR1YWxIYW5kbGVzfHwgZmFsc2U7XG4gICAgICAgICAgICBzY29wZS50cmlnZ2VyX2lucHV0X2NoYW5nZT0gZmFsc2U7XG4gICAgICAgICAgICBzY29wZS5ub3RNb3JlICA9IHBhcnNlSW50KGF0dHJzLm5vdE1vcmUpICAgfHwgMTAwO1xuICAgICAgICAgICAgc2NvcGUubm90TGVzcyAgPSBwYXJzZUludChhdHRycy5ub3RMZXNzKSAgIHx8IDA7XG5cbiAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkgZWxlbWVudC5hZGRDbGFzcyhcInZlcnRpY2FsLXJhbmdlXCIpO1xuXG4gICAgICAgICAgICBzY29wZS5oYW5kbGVzPSBbc2NvcGUuZmluZCgnLmhhbmRsZS1taW4nKSwgc2NvcGUuZmluZCgnLmhhbmRsZS1tYXgnKV07XG4gICAgICAgICAgICBzY29wZS5iYXIgICAgPSBlbGVtZW50O1xuICAgICAgICAgICAgc2NvcGUuc2xpZGVyID0gc2NvcGUuZmluZCgnLnJhbmdlLXNsaWRlci1hY3RpdmUtc2VnbWVudCcpO1xuICAgICAgICAgICAgc2NvcGUuc3RhcnQgID0gc2NvcGUuZmluZCgnLmliei1yYW5nZS1zbGlkZXItc3RhcnQnKTtcbiAgICAgICAgICAgIHNjb3BlLnN0b3AgICA9IHNjb3BlLmZpbmQoJy5pYnotcmFuZ2Utc2xpZGVyLXN0b3AnKTtcbiAgICAgICAgICAgIHNjb3BlLmRpc2FibGU9IGF0dHJzLmRpc2FibGUgfHwgZmFsc2U7XG5cbiAgICAgICAgICAgIHNjb3BlLmN0cmxoYW5kbGUgPSBuZXcgUmFuZ2VTbGlkZXJIYW5kbGUgKHNjb3BlKTtcblxuICAgICAgICAgICAgLy8gcHJlcGFyZSBET00gb2JqZWN0IHBvaW50ZXIgdG8gY29tcHV0ZSBzaXplIGR5bmFtaWNhbGx5XG4gICAgICAgICAgICBzY29wZS5ib3VuZHMgPSB7XG4gICAgICAgICAgICAgICAgYmFyICAgIDogZWxlbWVudFswXSxcbiAgICAgICAgICAgICAgICBoYW5kbGVzOiBbc2NvcGUuaGFuZGxlc1swXVswXSwgc2NvcGUuaGFuZGxlc1sxXVswXV1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChhdHRycy5kaXNhYmxlID09PSAndHJ1ZScpIHNjb3BlLnNldERpc2FibGUodHJ1ZSk7XG5cbiAgICAgICAgICAgIGlmIChhdHRycy5kaXNwbGF5VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChhdHRycy5kaXNwbGF5VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZSA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2hhbmRsZScgOlxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuZGlzcGxheXMgPSBzY29wZS5oYW5kbGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1swXS5hZGRDbGFzcygnaWJ6LXJhbmdlLXNsaWRlci1kaXNwbGF5Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuZHVhbCkgc2NvcGUuaGFuZGxlc1sxXS5hZGRDbGFzcygnaWJ6LXJhbmdlLXNsaWRlci1kaXNwbGF5Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmRpc3BsYXlzID0gIFskZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgKGF0dHJzLmRpc3BsYXlUYXJnZXQpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Ugc2NvcGUuZGlzcGxheXM9W107XG5cbiAgICAgICAgICAgIC8vIGV4dHJhY3QgaW5pdGlhbCB2YWx1ZXMgZnJvbSBhdHRycyBhbmQgcGFyc2UgaW50byBpbnRcbiAgICAgICAgICAgIGlmICghYXR0cnMuaW5pdGlhbCkge1xuICAgICAgICAgICAgICAgIHNjb3BlLmluaXRpYWwgID0gW3Njb3BlLm5nTW9kZWwsIHNjb3BlLm5nTW9kZWxdOyAvLyBpbml0aWFsaXplIHRvIG1vZGVsIHZhbHVlc1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YXIgaW5pdGlhbCAgPSBhdHRycy5pbml0aWFsLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICAgICAgc2NvcGUuaW5pdGlhbCA9IFtcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFswXSAhPT0gdW5kZWZpbmVkID8gcGFyc2VJbnQgKGluaXRpYWxbMF0pIDogc2NvcGUubm90TGVzcyxcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFsxXSAhPT0gdW5kZWZpbmVkID8gcGFyc2VJbnQgKGluaXRpYWxbMV0pIDogc2NvcGUubm90TW9yZVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE1vbml0b3IgYW55IGNoYW5nZXMgb24gc3RhcnQvc3RvcCBkYXRlcy5cbiAgICAgICAgICAgIHNjb3BlLiR3YXRjaCgnc3RhcnRBdCcsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS52YWx1ZSA8IHNjb3BlLnN0YXJ0QXQgKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vc2NvcGUuc2V0VmFsdWUgKHNjb3BlLnN0YXJ0QXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuc3RhcnRBdCkgc2NvcGUuc2V0U3RhcnQgKHNjb3BlLnN0YXJ0QXQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHNjb3BlLiR3YXRjaCgnc3RvcEF0JyAsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS52YWx1ZSA+IHNjb3BlLnN0b3BBdCkge1xuICAgICAgICAgICAgICAgICAgICAvL3Njb3BlLnNldFZhbHVlIChzY29wZS5zdG9wQXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuc3RvcEF0KSBzY29wZS5zZXRTdG9wIChzY29wZS5zdG9wQXQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIGZpbmlzaCB3aWRnZXQgaW5pdGlhbGlzYXRpb25cbiAgICAgICAgICAgIHNjb3BlLmluaXRpYWxTZXR0aW5ncyAoc2NvcGUuaW5pdGlhbCk7XG5cbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5pbml0KCk7XG4gICAgICAgIFxuICAgICAgICAgLy8gc2xpZGVyIGlzIHJlYWR5IHByb3ZpZGUgY29udHJvbCBoYW5kbGUgdG8gYXBwbGljYXRpb24gY29udHJvbGxlclxuICAgICAgICBzY29wZS4kd2F0Y2ggKCdpbml0aG9vaycsIGZ1bmN0aW9uICgpIHsgICAgICAgICAvLyBpbml0IFZhbHVlcyBtYXkgYXJyaXZlIGxhdGVcbiAgICAgICAgICAgIGlmIChzY29wZS5pbml0aG9vaykgc2NvcGUuaW5pdGhvb2sgKHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzY29wZS4kd2F0Y2ggKCdpbml0dmFsdWVzJywgZnVuY3Rpb24gKCkgeyBcdC8vIGluaXQgVmFsdWVzIG1heSBhcnJpdmUgbGF0ZVxuICAgICAgICAgICAgaWYgKHNjb3BlLmluaXR2YWx1ZXMpIHNjb3BlLmluaXRXaWRnZXQoc2NvcGUuaW5pdHZhbHVlcyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHR3by13YXkgYmluZGluZyBpZiBtb2RlbCB2YWx1ZSBjaGFuZ2VzXG4gICAgICAgIHNjb3BlLiR3YXRjaCAoJ25nTW9kZWwnLCBmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgICAgICBzY29wZS5zZXRWYWx1ZShuZXdWYWx1ZSwgMCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxucmV0dXJuIHtcbiAgICByZXN0cmljdDogXCJFXCIsICAgIC8vIHJlc3RyaWN0IHRvIDxyYW5nZS1zbGlkZXI+IEhUTUwgZWxlbWVudCBuYW1lXG4gICAgc2NvcGU6IHtcbiAgICAgICAgc3RhcnRBdCAgOic9JywgIC8vIEZpcnN0IGFjY2VwdGFibGUgZGF0ZVxuICAgICAgICBzdG9wQXQgICA6Jz0nLCAgLy8gTGFzdCBhY2NlcHRhYmxlIGRhdGVcbiAgICAgICAgY2FsbGJhY2sgOic9JywgIC8vIENhbGxiYWNrIHRvIGFjdGlmIHdoZW4gYSBkYXRlIGlzIHNlbGVjdGVkXG4gICAgICAgIGZvcm1hdHRlcjonPScsICAvLyBDYWxsYmFjayBmb3IgZHJhZyBldmVudCBjYWxsIGVhY2ggdGltZSBpbnRlcm5hbCB2YWx1ZSBjaGFuZ2VzXG4gICAgICAgIGluaXRob29rIDonPScsICAvLyBIb29rIHBvaW50IHRvIGNvbnRyb2wgc2xpZGVyIGZyb20gQVBJXG4gICAgICAgIGNiaGFuZGxlIDonPScsICAvLyBBcmd1bWVudCBhZGRlZCB0byBldmVyeSBjYWxsYmFja1xuICAgICAgICBpbml0dmFsdWVzOic9JywgICAvLyBJbml0aWFsIHZhbHVlcyBhcyBhIHNpbmdsZSBvYmplY3RcbiAgICAgICAgbmdNb2RlbDogJz0nICAgIC8vIHRoZSBtb2RlbCB2YWx1ZVxuICAgIH0sXG4gICAgcmVxdWlyZTogJz9uZ01vZGVsJyxcbiAgICB0ZW1wbGF0ZTogdGVtcGxhdGUsIC8vIGh0bWwgdGVtcGxhdGUgaXMgYnVpbGQgZnJvbSBKU1xuICAgIHJlcGxhY2U6IHRydWUsICAgICAgLy8gcmVwbGFjZSBjdXJyZW50IGRpcmVjdGl2ZSB3aXRoIHRlbXBsYXRlIHdoaWxlIGluaGVyaXRpbmcgb2YgY2xhc3NcbiAgICBsaW5rOiBsaW5rICAgICAgICAgIC8vIHBpY2thZGF0ZSBvYmplY3QncyBtZXRob2RzXG59O1xufV0pO1xuXG5jb25zb2xlLmxvZyAoXCJSYW5nZVNsaWRlciBMb2FkZWRcIik7XG5cbn0pKCk7IiwiLypcbiBhbHNhLWdhdGV3YXkgLS0gcHJvdmlkZSBhIFJFU1QvSFRUUCBpbnRlcmZhY2UgdG8gQUxTQS1NaXhlclxuXG4gQ29weXJpZ2h0IChDKSAyMDE1LCBGdWx1cCBBciBGb2xsXG5cbiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3JcbiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG4gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblxuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gYWxvbmcgd2l0aCBzY29wZSBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuXG5cbiBSZWZlcmVuY2VzOlxuXG4gKi9cblxuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgdGVtcGxhdGUgPVxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwiYWZiLW1vbml0b3JcIiBuZy1jbGljaz1cImdldHBpbmcoKVwiPicgK1xuICAgICAgICAgJzxzcGFuIGNsYXNzPVwiYWZiLXJlZnJlc2gtdG9rZW5cIiAgPmFmYjovL3t7aG9zdG5hbWV9fTp7e2h0dHBkcG9ydH19PC9zcGFuPicgK1xuICAgICAgICAgJzxpIGNsYXNzPVwie3tpY29ufX1cIj48L2k+JyArXG4gICAgICAgICAnPC9kaXY+JztcblxuXG4vLyBzY29wZSBtb2R1bGUgaXMgbG9hZCBzdGF0aWNhbGx5IGJlZm9yZSBhbnkgcm91dGUgaXMgY2F0aXZhdGVkXG5hbmd1bGFyLm1vZHVsZSgnVG9rZW5SZWZyZXNoJywgWydBcHBDb25maWcnLCAnTW9kYWxOb3RpZmljYXRpb24nXSlcblxuICAgIC5kaXJlY3RpdmUgKCd0b2tlblJlZnJlc2gnLCBbXCIkdGltZW91dFwiLCBcIiRodHRwXCIsIFwiJGxvY2F0aW9uXCIsIFwiTm90aWZpY2F0aW9uXCIsIFwiQXBwQ29uZmlnXCIsIGZ1bmN0aW9uKCR0aW1lb3V0LCAkaHR0cCwgJGxvY2F0aW9uLCBOb3RpZmljYXRpb24sIEFwcENvbmZpZykge1xuXG4gICAgZnVuY3Rpb24gbXltZXRob2RzKHNjb3BlLCBlbGVtLCBhdHRycykge1xuICAgICAgICBzY29wZS5zdGF0dXM9dW5kZWZpbmVkOyAvLyBuZWl0aGVyIHRodSBuZWl0aGVyIGZhbHNlXG4gICAgICAgIFxuICAgIFxuICAgICAgICBzY29wZS5vbmxpbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBlbGVtLmFkZENsYXNzICAgIChcIm9ubGluZVwiKTtcbiAgICAgICAgICAgIGVsZW0ucmVtb3ZlQ2xhc3MgKFwib2ZmbGluZVwiKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5vZmZsaW5lID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgICAgKFwib2ZmbGluZVwiKTtcbiAgICAgICAgICAgIGVsZW0ucmVtb3ZlQ2xhc3MgKFwib25saW5lXCIpO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgc2NvcGUub25lcnJvciA9IGZ1bmN0aW9uKGRhdGEsIGVycmNvZGUsIGhlYWRlcnMpIHtcbiAgICAgICAgICAgIGlmIChzY29wZS5zdGF0dXMgIT09IGZhbHNlKSAge1xuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbi53YXJuaW5nICh7bWVzc2FnZTogXCJBcHBGcmFtZXdvcmsgQmluZGVyIExvc3RcIiwgZGVsYXk6IDUwMDB9KTtcbiAgICAgICAgICAgICAgICBzY29wZS5vZmZsaW5lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY29wZS5zdGF0dXMgPSAwO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgc2NvcGUub25zdWNjZXNzID0gZnVuY3Rpb24oZGF0YSwgZXJyY29kZSwgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoc2NvcGUuc3RhdHVzICE9PSB0cnVlKSAge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLnJlcXVlc3QudG9rZW4pIEFwcENvbmZpZy5zZXNzaW9uLnRva2VuID0gZGF0YS5yZXF1ZXN0LnRva2VuO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLnJlcXVlc3QudXVpZCkgIEFwcENvbmZpZy5zZXNzaW9uLnV1aWQgID0gZGF0YS5yZXF1ZXN0LnV1aWQ7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC50aW1lb3V0KSAgQXBwQ29uZmlnLnNlc3Npb24udGltZW91dCAgPSBkYXRhLnJlcXVlc3QudGltZW91dDtcblxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbi5zdWNjZXNzICh7bWVzc2FnZTogXCJBcHBGcmFtZXdvcmsgQmluZGVyIEJhY2sgdG8gTGl2ZVwiLCBkZWxheTogMzAwMH0pO1xuICAgICAgICAgICAgICAgIHNjb3BlLm9ubGluZSgpO1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS5jYWxsYmFjaykgc2NvcGUuY2FsbGJhY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLnN0YXR1cyA9IDE7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQ2hlY2sgQmluZGVyIHN0YXR1c1xuICAgICAgICBzY29wZS5nZXRwaW5nID0gZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gJGh0dHAuZ2V0KEFwcENvbmZpZy5zZXNzaW9uLnBpbmcrJz90b2tlbj0nKyBBcHBDb25maWcuc2Vzc2lvbi50b2tlbik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIHByb2Nlc3Mgc3VjY2VzcyBhbmQgZXJyb3JcbiAgICAgICAgICAgIGhhbmRsZXIuc3VjY2VzcyhzY29wZS5vbnN1Y2Nlc3MpO1xuICAgICAgICAgICAgaGFuZGxlci5lcnJvcihzY29wZS5vbmVycm9yKTtcblxuICAgICAgICAgICAgLy8gcmVzdGFydCBhIG5ldyB0aW1lciBmb3IgbmV4dCBwaW5nXG4gICAgICAgICAgICAkdGltZW91dCAoc2NvcGUuZ2V0cGluZywgQXBwQ29uZmlnLnNlc3Npb24ucGluZ3JhdGUqMTAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBDaGVjayBCaW5kZXIgc3RhdHVzXG4gICAgICAgIHNjb3BlLnJlZnJlc2ggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gJGh0dHAuZ2V0KEFwcENvbmZpZy5zZXNzaW9uLnJlZnJlc2grJz90b2tlbj0nKyBBcHBDb25maWcuc2Vzc2lvbi50b2tlbik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIHByb2Nlc3Mgc3VjY2VzcyBhbmQgZXJyb3JcbiAgICAgICAgICAgIGhhbmRsZXIuc3VjY2VzcyhzY29wZS5vbnN1Y2Nlc3MpO1xuICAgICAgICAgICAgaGFuZGxlci5lcnJvcihzY29wZS5vbmVycm9yKTtcbiAgICAgICAgICAgIC8vIHJlc3RhcnQgYSBuZXcgdGltZXIgZm9yIG5leHQgcmVmcmVzaCB0byAxLzQgb2YgdGltZW91dCBzZXNzaW9uXG4gICAgICAgICAgICAkdGltZW91dCAoc2NvcGUucmVmcmVzaCwgQXBwQ29uZmlnLnNlc3Npb24udGltZW91dCAqMjUwKTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIEluaXRpYWwgY29ubmVjdGlvblxuICAgICAgICBzY29wZS50a2NyZWF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSAkaHR0cC5nZXQoQXBwQ29uZmlnLnNlc3Npb24uY3JlYXRlKyc/dG9rZW49JysgQXBwQ29uZmlnLnNlc3Npb24uaW5pdGlhbCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIHByb2Nlc3Mgc3VjY2VzcyBhbmQgZXJyb3JcbiAgICAgICAgICAgIGhhbmRsZXIuc3VjY2VzcyhzY29wZS5vbnN1Y2Nlc3MpO1xuICAgICAgICAgICAgaGFuZGxlci5lcnJvcihzY29wZS5vbmVycm9yKTtcbiAgICAgICAgfTtcbiBcbiAgICAgICAgc2NvcGUuaWNvbiAgICAgID0gYXR0cnMuaWNvbiAgIHx8IFwiZmktbGlnaHRidWxiXCI7XG4gICAgICAgIHNjb3BlLmhvc3RuYW1lICA9ICRsb2NhdGlvbi5ob3N0KCk7XG4gICAgICAgIHNjb3BlLmh0dHBkcG9ydCA9ICRsb2NhdGlvbi5wb3J0KCk7XG4gICAgICAgIHNjb3BlLmF1dG9sb2cgICA9IEpTT04ucGFyc2UoYXR0cnMuYXV0b2xvZyB8fCBmYWxzZSk7XG4gICAgICAgIFxuICAgICAgICBpZiAoc2NvcGUuYXV0b2xvZykgc2NvcGUudGtjcmVhdGUoKTtcblxuICAgICAgICAvLyBJbml0IHBpbmcgYW5kIHJlZnJlc2ggcHJvY2Vzc1xuICAgICAgICAkdGltZW91dCAoc2NvcGUuZ2V0cGluZywgQXBwQ29uZmlnLnNlc3Npb24ucGluZ3JhdGUqMTAwMCk7XG4gICAgICAgICR0aW1lb3V0IChzY29wZS5yZWZyZXNoLCBBcHBDb25maWcuc2Vzc2lvbi50aW1lb3V0ICoyNTApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgIGNhbGxiYWNrIDogXCI9XCJcbiAgICAgICAgfSxcbiAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgbGluazogbXltZXRob2RzXG4gICAgfTtcbn1dKTtcblxufSkoKTtcbmNvbnNvbGUubG9nIChcIlRva2VuIFJlZnJlc2ggTG9hZGVkXCIpO1xuXG4iLCIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqIFxuICogQnVnczogSW5wdXQgd2l0aCBDYWxsYmFjayBTSE9VTEQgQkUgZ2V0ICdyZXF1aXJlZCcgY2xhc3NcbiAqIFxuICogcmVmOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvbW91c2VvdmVyXG4gKiBcbiAqIHVzYWdlOiBcbiAqIFxuICogdGlwTW9kYWw6IGxpc3RlbiBldmVudCBmcm9tIGVsZW0ucGFyZW50KCkgdG8gZGlzcGxheSB0aXAtbW9kYWxcbiAqICAgICAgPGRpdiBjbGFzcz1cInh4eHhcIj5cbiAqICAgICAgICAgIDx0aXAtbW9kYWwgdGlwPXh4eHg+PC90aXAtbW9kYWw+XG4gKiAgICAgICAgICA8aW5wdXQtdGV4dCAuLi4uPjwvaW5wdXQtdGV4dD5cbiAqICAgICAgPC9kaXY+XG4gKiAgICAgIFxuICogTm90ZTogdXNlIENTUy52aXNpYmlsaXR5IHRvIGF2b2lkIGRpc3BsYXkgZmxpY2tlcmluZyBhdCBpbml0aWFsIGRpc3BsYXkuXG4gKi9cblxuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgdG1wbCA9ICc8ZGl2IGNsYXNzPVwidGlwLW1vZGFsLXBvcHVwXCI+JyArXG4gICAgICAgICAgICAnPGkgY2xhc3M9XCJ7e2ljb259fVwiPjwvaT4nICtcbiAgICAgICAgICAgICc8c3Bhbj57e3RpcH19PC9zcGFuPicgK1xuICAgICAgICAgICAgJzwvc3Bhbj48L2Rpdj4nIDtcblxuICAgIGFuZ3VsYXIubW9kdWxlKCdNb2RhbE5vdGlmaWNhdGlvbicsIFtdKVxuICAgICAgICAgICAgLmRpcmVjdGl2ZSgndGlwTW9kYWwnLCBbXCIkdGltZW91dFwiLCBmdW5jdGlvbiAoJHRpbWVvdXQpIHtcblxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUucGFyZW50ID0gZWxlbS5wYXJlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUubW9kYWwgICAgPSBlbGVtLmZpbmQoXCJkaXZcIik7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBkZWxheSB0aXAgZGlzcGxheSB0byBhdm9pZCBibGlua2luZyB3aGVuIG1vdmluZyBtb3VzZSBmYXN0XG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGRpc3BsYXkgKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gYWN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuc2hvdykgc2NvcGUubW9kYWwuY3NzKHtvcGFjaXR5OiAxLCB2aXNpYmlsaXR5Oid2aXNpYmxlJ30pOyAgXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5zaG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLnRpbWVvdXQgPSAkdGltZW91dChhY3Rpb24sIHNjb3BlLmRlbGF5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2xvc2UgKCkge1xuICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLnNob3cgPSBmYWxzZTsgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICBzY29wZS5tb2RhbC5jc3Moe29wYWNpdHk6IDAsIHZpc2liaWxpdHk6J2hpZGRlbid9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICAgICAvLyBhanVzdCBpY29uIG9yIHVzZSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmljb24gID0gYXR0cnMuaWNvbiB8fCAnZmktbGlnaHRidWxiJztcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBQYXJlbnQgZWxlbWVudCB0byBnZXQgbW91c2UgZXZlbnRcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUucGFyZW50LmFkZENsYXNzICgnYXMtbW9kYWwtdGlwJyk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5iaW5kKCdjbGljaycsIGNsb3NlKTtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUucGFyZW50LmJpbmQoJ2ZvY3VzJywgZGlzcGxheSk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5iaW5kKCdtb3VzZW92ZXInLCBkaXNwbGF5KTtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUucGFyZW50LmJpbmQoJ21vdXNlbGVhdmUnLCBjbG9zZSk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5iaW5kKCdibHVyJywgY2xvc2UpO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuZGVsYXkgPSBhdHRycy5kZWxheSB8fCAxMDAwOyAvLyB3YWl0IDFzIGJlZm9yZSBkaXNwbGF5aW5nIHRpcFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICAgICAgICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlOiB7dGlwOiBcIj1cIn0gLy8gdGlwIG1heSBub3QgYmUgZGVmaW5lZCB3aGVuIHdpZGdldCBpcyBkaXNwbGF5XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1dKTtcbn0pKCk7XG4iLCIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqIFxuICogQnVnczogSW5wdXQgd2l0aCBDYWxsYmFjayBTSE9VTEQgQkUgZ2V0ICdyZXF1aXJlZCcgY2xhc3NcbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIHZhciB0bXBsID0gJzxzcGFuIHRpdGxlPVwiR290bzoge3tocmVmfX1cIiBuZy1jbGljaz1cImNsaWNrZWQoKVwiPicgK1xuICAgICAgICAgICAgJzxpIGNsYXNzPVwie3tpY29ufX1cIj48L2k+JyArXG4gICAgICAgICAgICAnPHNwYW4+e3tsYWJlbH19PC9zcGFuPicgK1xuICAgICAgICAgICAgJzwvc3Bhbj4nO1xuXG5cbiAgICBhbmd1bGFyLm1vZHVsZSgnTGlua0J1dHRvbicsIFtdKVxuICAgICAgICAgICAgLmRpcmVjdGl2ZSgnbGlua0J1dHRvbicsIFtcIiRsb2NhdGlvblwiLCBmdW5jdGlvbiAoJGxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gbXltZXRob2RzKHNjb3BlLCBlbGVtLCBhdHRycykge1xuXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmNsaWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYXR0cnMucXVlcnkpICRsb2NhdGlvbi5wYXRoKGF0dHJzLmhyZWYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAkbG9jYXRpb24ucGF0aChhdHRycy5ocmVmKS5zZWFyY2goYXR0cnMucXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGFqdXN0IGljb24gb3IgdXNlIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaWNvbiA9IGF0dHJzLmljb24gICB8fCAnZmktbGluayc7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmxhYmVsID0gYXR0cnMubGFiZWwgfHwgJ0p1bXAnO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5ocmVmICA9IGF0dHJzLmhyZWYgIHx8ICcvaG9tZSc7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbGFiZWwgYXMgY2xhc3NcbiAgICAgICAgICAgICAgICAgICAgZWxlbS5hZGRDbGFzcyAoc2NvcGUubGFiZWwudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IHRtcGwsXG4gICAgICAgICAgICAgICAgICAgIGxpbms6IG15bWV0aG9kcyxcbiAgICAgICAgICAgICAgICAgICAgc2NvcGU6IHt9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1dKTtcbn0pKCk7XG4iLCIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqIFxuICogQnVnczogSW5wdXQgd2l0aCBDYWxsYmFjayBTSE9VTEQgQkUgZ2V0ICdyZXF1aXJlZCcgY2xhc3NcbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIHZhciB0bXBsID0gJzxkaXYgIG5nLWNsaWNrPVwiY2xpY2tlZCgpXCI+JyArXG4gICAgICAgICAgICAnPGkgY2xhc3M9XCJ7e2ljb259fVwiPjwvaT4nICtcbiAgICAgICAgICAgICc8c3Bhbj57e2xhYmVsfX08L3NwYW4+JyArXG4gICAgICAgICAgICAnPC9kaXY+JztcblxuICAgIGFuZ3VsYXIubW9kdWxlKCdTdWJtaXRCdXR0b24nLCBbXSlcbiAgICAgICAgICAgIC5kaXJlY3RpdmUoJ3N1Ym1pdEJ1dHRvbicsIGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcblxuICAgICAgICAgICAgICAgICAgICAvLyBhanVzdCBpY29uIG9yIHVzZSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmljb24gPSBhdHRycy5pY29uIHx8ICdmaS1mb290JztcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUubGFiZWwgPSBhdHRycy5sYWJlbCB8fCAnTmV4dCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbGFiZWwgYXMgY2xhc3NcbiAgICAgICAgICAgICAgICAgICAgZWxlbS5hZGRDbGFzcyAoc2NvcGUubGFiZWwudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiBjbGlja2VkIGluIGltcG9ydGVkIGFuZCB3aGVuIHRlbXBsYXRlIGlzIGNsaWNrZWRcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQgd2lsbCBjYWxsIGNsaWNrZWQgbWV0aG9kIHBhc3NlZCBpbiBwYXJhbS5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IHRtcGwsXG4gICAgICAgICAgICAgICAgICAgIGxpbms6IG15bWV0aG9kcyxcbiAgICAgICAgICAgICAgICAgICAgc2NvcGU6IHtjbGlja2VkIDogJz0nfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbn0pKCk7XG4iLCIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqIFxuICogQnVnczogSW5wdXQgd2l0aCBDYWxsYmFjayBTSE9VTEQgQkUgZ2V0ICdyZXF1aXJlZCcgY2xhc3NcbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIHZhciB0bXBsQXBwbGkgPSAnPGRpdiAgbmctY2xpY2s9XCJjbGlja2VkKClcIj4nICtcbiAgICAgICAgICAgICc8aW1nIG5nLXNyYz1cInt7aWNvbn19XCI+JyArXG4gICAgICAgICAgICAnPHNwYW4+e3tsYWJlbH19PC9zcGFuPicgK1xuICAgICAgICAgICAgJzwvZGl2Pic7XG4gICAgXG4gICAgdmFyIHRtcGxNb2RhbCA9IFxuICAgICAgICAgICAgJzxiIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgbmctY2xpY2s9XCJjbG9zZSgpXCI+w5c8L2I+JyArXG4gICAgICAgICAgICAnPGltZyBuZy1zcmM9XCJ7e2ljb259fVwiPicgK1xuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibW9kYWwtdGV4dFwiPkFwcGxpY2F0aW9uIDxiPnt7bmFtZX19PC9iPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8dWwgY2xhc3M9XCJ2ZXJ0aWNhbCBpY29uLWxlZnQgcHJpbWFyeSBtZW51LWJhclwiPicgK1xuICAgICAgICAgICAgJzxsaT48YSBuZy1jbGljaz1hY3Rpb24oXCJzdGFydFwiKT48aSBjbGFzcz1cImZpLWNoZWNrXCI+IFN0YXJ0PC9pPjwvYT48L2xpPicgK1xuICAgICAgICAgICAgJzxsaT48YSBuZy1jbGljaz1hY3Rpb24oXCJzdG9wXCIpPjxpIGNsYXNzPVwiZmkteFwiPiBTdG9wPC9pPjwvYT48L2xpPicgK1xuICAgICAgICAgICAgJzxsaT48YSBuZy1jbGljaz1hY3Rpb24oXCJpbmZvXCIpPjxpIGNsYXNzPVwiZmktaW5mb1wiPiBJbmZvPC9pPjwvYT48L2xpPicgK1xuICAgICAgICAgICAgJzwvdWw+JyArXG4gICAgICAgICAgICAnJztcblxuICAgIGFuZ3VsYXIubW9kdWxlKCdBcHBsaUJ1dHRvbicsIFtdKVxuICAgICAgICAgICAgLmRpcmVjdGl2ZSgnYXBwbGlCdXR0b24nLCBbXCJBcHBDb25maWdcIiwgXCJBcHBDYWxsXCIsIFwiTW9kYWxGYWN0b3J5XCIsIFwiTm90aWZpY2F0aW9uXCIsIFwiJHRpbWVvdXRcIiwgZnVuY3Rpb24gKEFwcENvbmZpZywgQXBwQ2FsbCwgTW9kYWxGYWN0b3J5LCBOb3RpZmljYXRpb24sICR0aW1lb3V0KSB7XG5cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmNsaWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjbG9zZU1vZGFsID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cgKFwiTW9kYWwgQ2xvc2luZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5tb2RhbC5kZWFjdGl2YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRpbWVvdXQgKGZ1bmN0aW9uKCkge3Njb3BlLm1vZGFsLmRlc3Ryb3koKTt9LCAxMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhY3Rpb25Nb2RhbCA9IGZ1bmN0aW9uKGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIk1vZGFsIEFjdGlvbj0lc1wiLCBhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3RhcnRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcENhbGwuZ2V0IChcImFmbS1tYWluXCIsIFwic3RhcnRcIiwge2lkOiBzY29wZS5hcHBsaUlEfSwgZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uLmVycm9yICh7bWVzc2FnZTogXCJGYWlsIHRvIHN0YXJ0IGFwcGxpY2F0aW9uPVwiICsgc2NvcGUubGFiZWwgK1wiIElEPVwiKyBzY29wZS5hcHBsaUlELCBkZWxheTogNTAwMH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzIChcImZhaWxcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0ucmVtb3ZlQ2xhc3MgKFwic3VjY2Vzc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLmFwcGxpSUQsIFwiL2FwaS9hZm0tbWFpbi9zdGFydFwiLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGlzIGlzIGEgdmFsaWQgcmVzcG9uc2UgZnJvbSBCaW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5yZXF1ZXN0Lmp0eXBlICE9PSBcIkFKQl9yZXBseVwiICYmIHJlc3BvbnNlLmRhdGEucmVxdWVzdC5hcGkgIT09IFwic3RhcnRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZmljYXRpb24uZXJyb3IgKHttZXNzYWdlOiBcIkludmFsaWQgUmVzcG9uZCB0byAvb3BhL2FmbS1tYWluL3N0YXJ0IHJlc3BvbnNlLmRhdGE9XCIrcmVzcG9uc2UuZGF0YSwgZGVsYXk6IDUwMDB9KTsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgKFwiZmFpbFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbS5yZW1vdmVDbGFzcyAoXCJzdWNjZXNzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5jYWxsYmFjayAoc2NvcGUuYXBwbGlJRCwgXCIvYXBpL2FmbS1tYWluL3N0YXJ0XCIsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiB3YXMgc3RhcnRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgKFwic3VjY2Vzc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcImZhaWxcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUucnVuSUQgPSByZXNwb25zZS5kYXRhLnJlc3BvbnNlLnJ1bmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmNhbGxiYWNrIChzY29wZS5hcHBsaUlELCBcIi9hcGkvYWZtLW1haW4vc3RhcnRcIiwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3RvcFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIkFjdGlvbk1vZGFsIHVua25vd24gYWN0aW9uPVslc11cIiwgYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZU1vZGFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByZWZlcmVuY2UgaHR0cDovL2ZvdW5kYXRpb24uenVyYi5jb20vYXBwcy9kb2NzLyMhL2FuZ3VsYXItbW9kdWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25JbjogJ3NsaWRlSW5Gcm9tVG9wJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50U2NvcGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uICA6IGFjdGlvbk1vZGFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSAgIDogY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiAgICA6IHNjb3BlLmljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsICAgOiBzY29wZS5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRlbXBsYXRlIDogdG1wbE1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICB9OyBcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBvcHVwIE1vZGFsIHRvIHJlbmRlciBhcHBsaWNhdGlvbiBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5tb2RhbCA9IG5ldyBNb2RhbEZhY3RvcnkoY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLm1vZGFsLmFjdGl2YXRlICgpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGV4dHJhY3QgYXBwbGljYXRpb24gaW5mb3JtYXRpb24gZnJvbSBBcHBJRCtTdG9yZVxuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cnMuaGFuZGxlICYmIHNjb3BlLnN0b3JlIFthdHRycy5oYW5kbGVdLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmljb24gID0gQXBwQ29uZmlnLnBhdGhzLmljb25zICsgc2NvcGUuc3RvcmUgW2F0dHJzLmhhbmRsZV0ubmFtZS50b0xvd2VyQ2FzZSgpICsgJy1pY28ucG5nJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmxhYmVsID0gc2NvcGUuc3RvcmUgW2F0dHJzLmhhbmRsZV0ubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmFwcGxpSUQ9IGF0dHJzLmhhbmRsZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5pY29uICA9IEFwcENvbmZpZy5wYXRocy5pY29ucyArICd3M2MtaWNvLnBuZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUubGFiZWwgPSBhdHRycy5oYW5kbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIGFkZCBsYWJlbCBhcyBjbGFzc1xuICAgICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzIChzY29wZS5sYWJlbC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IGNsaWNrZWQgaW4gaW1wb3J0ZWQgYW5kIHdoZW4gdGVtcGxhdGUgaXMgY2xpY2tlZFxuICAgICAgICAgICAgICAgICAgICAvLyBpdCB3aWxsIGNhbGwgY2xpY2tlZCBtZXRob2QgcGFzc2VkIGluIHBhcmFtLlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdG1wbEFwcGxpLFxuICAgICAgICAgICAgICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlOiB7Y2FsbGJhY2s6ICc9Jywgc3RvcmU6ICc9J31cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfV0pO1xufSkoKTtcbiIsIlxuLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4uXG4gKiBcbiAqIFJlZmVyZW5jZTpcbiAqICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvQVBJL0ZpbGVSZWFkZXIgXG4gKiAgIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVXNpbmdfZmlsZXNfZnJvbV93ZWJfYXBwbGljYXRpb25zI1VzaW5nX2hpZGRlbl9maWxlX2lucHV0X2VsZW1lbnRzX3VzaW5nX3RoZV9jbGljayUyOCUyOV9tZXRob2RcbiAqICAgaHR0cHM6Ly91bmNvcmtlZHN0dWRpb3MuY29tL2Jsb2cvbXVsdGlwYXJ0Zm9ybWRhdGEtZmlsZS11cGxvYWQtd2l0aC1hbmd1bGFyanNcbiAqICAgaHR0cHM6Ly93d3cudGVybGljaS5jb20vMjAxNS8wNS8xNi91cGxvYWRpbmctZmlsZXMtbG9jYWxseS5odG1sXG4gKiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9uZXJ2Z2gvYW5ndWxhci1maWxlLXVwbG9hZC9ibG9iL21hc3Rlci9zcmMvc2VydmljZXMvRmlsZVVwbG9hZGVyLmpzXG4gKiAgIGh0dHBzOi8vc3R1ay5naXRodWIuaW8vanN6aXAvZG9jdW1lbnRhdGlvbi9ob3d0by9yZWFkX3ppcC5odG1sXG4gKiAgIGh0dHA6Ly9vbmVodW5ncnltaW5kLmNvbS96aXAtcGFyc2luZy1qc3ppcC1hbmd1bGFyL1xuICogICBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE1MzQxOTEyL2hvdy10by1nby1mcm9tLWJsb2ItdG8tYXJyYXlidWZmZXJcbiAqICAgXG4gKiAgIEJ1Z3M6IHppcCBmaWxlIHNlbnQgZXZlbiB3aGVuIGZsYWcgYXMgaW52YWxpZCBcbiAqL1xuXG4gXG5cbihmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxudmFyIHRtcGxBcHBsaSA9ICc8aW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwie3tuYW1lfX0taW5wdXRcIiBvbmNoYW5nZT1cImFuZ3VsYXIuZWxlbWVudCh0aGlzKS5zY29wZSgpLlVwTG9hZEZpbGUodGhpcy5maWxlcylcIiBhY2NlcHQ9XCJ7e21pbWV0eXBlfX1cIiBzdHlsZT1cImRpc3BsYXk6bm9uZVwiPicrXG4gICAgICAgICAgICAnPGRpdiBjbGFzcz1cInVwbG9hZC1maWxlXCIgbmctY2xpY2s9XCJpbWdDbGlja2VkKClcIj4nICtcbiAgICAgICAgICAgICc8aSBjbGFzcz1cInt7aWNvbn19XCI+PC9pPiA8c3Bhbj57e2xhYmVsfX08L3NwYW4+JyArXG4gICAgICAgICAgICAnPHJhbmdlLXNsaWRlciBuZy1zaG93PVwiIW5vc2xpZGVyXCIgaWQ9XCJ7e25hbWV9fS1zbGlkZXJcIiBhdXRvbWF0aWM9dHJ1ZSBpbml0aG9vaz1cIlNsaWRlckluaXRDQlwiPjwvcmFuZ2Utc2xpZGVyPicgK1xuICAgICAgICAgICAgJzwvZGl2Pic7XG4gICAgXG52YXIgdG1wbE1vZGFsID0gJzxzcGFuIGNsYXNzPVwibW9kYWwtdGV4dFwiPlVwbG9hZCBBcHBsaWNhdGlvbiA8Yj57e2FwcG5hbWV9fTwvYj4gPzwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8ZGl2PicrXG4gICAgICAgICAgICAnPGltZyBuZy1zcmM9XCJ7e2ljb259fVwiPicgK1xuICAgICAgICAgICAgJzxzdWJtaXQtYnV0dG9uIGljb249XCJmaS14XCIgbGFiZWw9XCJDYW5jZWxcIiBjbGlja2VkPVwiYWJhbmRvblwiPjwvc3VibWl0LWJ1dHRvbj4nK1xuICAgICAgICAgICAgJzxzdWJtaXQtYnV0dG9uIGljb249XCJmaS1saWtlXCIgbGFiZWw9XCJJbnN0YWxsXCIgY2xpY2tlZD1cInN1Y2Nlc3NcIj48L3N1Ym1pdC1idXR0b24+ICcgK1xuICAgICAgICAgICAgJzwvZGl2Pic7XG4gICAgXG52YXIgdG1wbEVycm9yID0gJzxzcGFuIGNsYXNzPVwibW9kYWwtdGV4dFwiPkludmFsaWQgQXBwbGljYXRpb24gPGI+e3thcHBuYW1lfX08L2I+ID88L3NwYW4+JyArXG4gICAgICAgICAgICAnPGRpdj4nK1xuICAgICAgICAgICAgJzxpbWcgbmctc3JjPVwie3tpY29ufX1cIj4nICtcbiAgICAgICAgICAgICc8c3VibWl0LWJ1dHRvbiBpY29uPVwiZmkteFwiIGxhYmVsPVwiQ2xvc2VcIiBjbGlja2VkPVwiYWJhbmRvblwiPjwvc3VibWl0LWJ1dHRvbj4nK1xuICAgICAgICAgICAgJzwvZGl2Pic7XG4gICAgXG5cbi8vIFNlcnZpY2UgQ3JlYXRlIHhmb3JtIGluc2VydCBmaWxlcyBpbiBhbmQgUG9zdCBpdCB0byB1cmxcbmZ1bmN0aW9uIExvYWRGaWxlU3ZjIChzY29wZSwgZmlsZXMsIGZpbGVDQikge1xuICAgIHZhciB4bWxSZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICB2YXIgeGZvcm0gID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgXG4gICAgLy8gVXBkYXRlIHNsaWRlciBkdXJpbmcgVXBsb2FkXG4gICAgeG1sUmVxLnVwbG9hZC5vbnByb2dyZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHZhciBwcm9ncmVzcyA9IE1hdGgucm91bmQoZXZlbnQubGVuZ3RoQ29tcHV0YWJsZSA/IGV2ZW50LmxvYWRlZCAqIDEwMCAvIGV2ZW50LnRvdGFsIDogMCk7XG4gICAgICAgIGlmIChzY29wZS5zbGlkZXIpIHNjb3BlLnNsaWRlci5zZXRWYWx1ZSAocHJvZ3Jlc3MpO1xuICAgIH07XG5cbiAgICAvLyBVcGxvYWQgaXMgZmluaXNoIGxldCdzIG5vdGlmeSBjb250cm9sZXIgY2FsbGJhY2tcbiAgICB4bWxSZXEub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBzY29wZS5kaXZFbGVtLmFkZENsYXNzIChcInN1Y2Nlc3NcIik7XG4gICAgICAgIHNjb3BlLmRpdkVsZW0ucmVtb3ZlQ2xhc3MgKFwiZXJyb3JcIik7XG4gICAgICAgIHZhciByZXNwb25zZSA9e1xuICAgICAgICAgICAgc3RhdHVzIDogeG1sUmVxLnN0YXR1cyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHhtbFJlcS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBcbiAgICAgICAgfTtcbiAgICAgICAgc2NvcGUuY2FsbGJhY2sgKHJlc3BvbnNlKTtcbiAgICB9O1xuXG4gICAgeG1sUmVxLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNjb3BlLmRpdkVsZW0uYWRkQ2xhc3MgKFwiZXJyb3JcIik7XG4gICAgICAgIHNjb3BlLmRpdkVsZW0ucmVtb3ZlQ2xhc3MgKFwic3VjY2Vzc1wiKTtcbiAgICB9O1xuXG4gICAgeG1sUmVxLm9uYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNjb3BlLmRpdkVsZW0uYWRkQ2xhc3MgKFwiZXJyb3JcIik7XG4gICAgICAgIHNjb3BlLmRpdkVsZW0ucmVtb3ZlQ2xhc3MgKFwic3VjY2Vzc1wiKTtcbiAgICAgICAgdmFyIHJlc3BvbnNlID17XG4gICAgICAgICAgICBzdGF0dXMgOiB4bWxSZXEuc3RhdHVzLFxuICAgICAgICAgICAgaGVhZGVyczogeG1sUmVxLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIFxuICAgICAgICB9O1xuICAgICAgICBzY29wZS5jYWxsYmFjayAocmVzcG9uc2UpO1xuICAgIH07XG4gICAgXG4gICAgdGhpcy5wb3N0ZmlsZSA9IGZ1bmN0aW9uKHBvc3R1cmwpIHsgXG4gICAgICAgIC8vIGV2ZXJ5dGhpbmcgbG9va3MgT0sgbGV0J3MgUG9zdCBpdFxuICAgICAgICB4bWxSZXEub3BlbihcIlBPU1RcIiwgcG9zdHVybCAsIHRydWUpO1xuICAgICAgICB4bWxSZXEuc2VuZCh4Zm9ybSk7XG4gICAgfTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5maWxlID0gZmlsZXNbaV07XG4gICAgICAgIC8vIFVua25vdyBUeXBlICEhISBpZiAoIXRoaXMuZmlsZS50eXBlLm1hdGNoKHNjb3BlLm1pbWV0eXBlKSkgY29udGludWU7XG5cbiAgICAgICAgY29uc29sZS5sb2cgKFwiU2VsZWN0ZWQgZmlsZT1cIiArIHRoaXMuZmlsZS5uYW1lICsgXCIgc2l6ZT1cIisgdGhpcy5maWxlLnNpemUvMTAyNCArIFwiIFR5cGU9XCIrIHRoaXMuZmlsZS50eXBlKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuYmFzZW5hbWU9IHRoaXMuZmlsZS5uYW1lLnNwbGl0KCcvJykucmV2ZXJzZSgpWzBdO1xuXG4gICAgICAgIC8vIEZpbGUgdG8gdXBsb2FkIGlzIHRvbyBiaWdcbiAgICAgICAgaWYgKGlzTmFOKHRoaXMuZmlsZS5zaXplKSB8fCB0aGlzLmZpbGUuc2l6ZSA+IHNjb3BlLm1heHNpemUqMTAyNCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCAoZmlsZUNCLDEwMCk7ICAvLyBPbiBlcnJvciBhc3luY2hyb25vdXMgY2FsbGJhY2sgd2l0aG91dCBhcmd1bWVudFxuICAgICAgICAgICAgXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIC8vIElmIEZpbGUgaXMgcmVhZGFibGUgbGV0J3MgcmVhZCBpdFxuICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIodGhpcy5maWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmaWxlQ0I7XG5cbiAgICAgICAgICAgIC8vIGlmIGV2ZXJ5dGhpbmcgaXMgT0sgbGV0J3MgYWRkIGZpbGUgdG8geGZvcm1cbiAgICAgICAgICAgIHhmb3JtLmFwcGVuZChzY29wZS5uYW1lLCB0aGlzLmZpbGUsIHRoaXMuZmlsZS5uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYW5ndWxhci5tb2R1bGUoJ1VwbG9hZEZpbGVzJyxbJ0FwcENvbmZpZycsICdNb2RhbE5vdGlmaWNhdGlvbicsICdSYW5nZVNsaWRlciddKVxuXG4uZGlyZWN0aXZlKCd1cGxvYWRBcHBsaScsIFtcIkFwcENvbmZpZ1wiLCBcIkpRZW11XCIsIFwiTm90aWZpY2F0aW9uXCIsIFwiTW9kYWxGYWN0b3J5XCIsIFwiJHRpbWVvdXRcIiwgZnVuY3Rpb24oQXBwQ29uZmlnLCAgSlFlbXUsIE5vdGlmaWNhdGlvbiwgTW9kYWxGYWN0b3J5LCAkdGltZW91dCkge1xuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgXG4gICAgICAgIC8vIGdldCB3aWRnZXQgaW1hZ2UgaGFuZGxlIGZyb20gdGVtcGxhdGVcbiAgICAgICAgc2NvcGUuaW5wdXRFbGVtICA9IGVsZW0uZmluZCgnaW5wdXQnKTtcbiAgICAgICAgc2NvcGUuZGl2RWxlbSAgICA9IGVsZW0uZmluZCgnZGl2Jyk7XG4gICAgICAgIFxuICAgICAgICAvLyBJbWFnZSB3YXMgY2tpY2sgbGV0J3Mgc2ltdWxhdGUgYW4gaW5wdXQgKGZpbGUpIGNsaWNrXG4gICAgICAgIHNjb3BlLmltZ0NsaWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzY29wZS5pbnB1dEVsZW1bMF0uY2xpY2soKTsgLy8gV2FybmluZyBBbmd1bGFyIFRyaWdnZXJFdmVudCBkb2VzIG5vdCB3b3JrISEhXG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBTbGlkZXIgY29udHJvbCBoYW5kbGUgcmVnaXN0cmF0aW9uIGFmdGVyIGNyZWF0aW9uXG4gICAgICAgIHNjb3BlLlNsaWRlckluaXRDQj1mdW5jdGlvbiAoc2xpZGVyKSB7XG4gICAgICAgICAgIHNjb3BlLnNsaWRlcj0gc2xpZGVyOyBcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwbG9hZCBpcyBkZWxlZ2F0ZWQgdG8gYSBzaGFyZWQgZnVuY3Rpb25cbiAgICAgICAgc2NvcGUuVXBMb2FkRmlsZT1mdW5jdGlvbiAoZmlsZXMpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGU7IFxuICAgICAgICAgICAgdmFyIGFwcGljb247XG4gICAgICAgICAgICB2YXIgdGVtcGxhdGU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHZhciBzdWNjZXNzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBMb29rcyBPSyBsZXQncyBQb3N0IFhmb3JtL0ZpbGVcbiAgICAgICAgICAgICAgICBoYW5kbGUucG9zdGZpbGUoYXR0cnMucG9zdHVybCArIFwiP3Rva2VuPVwiICsgQXBwQ29uZmlnLnNlc3Npb24udG9rZW4pO1xuXG4gICAgICAgICAgICAgICAgc2NvcGUubW9kYWwuZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgICAgICAgICR0aW1lb3V0IChmdW5jdGlvbigpIHtzY29wZS5tb2RhbC5kZXN0cm95KCk7fSwgMTAwMCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICB2YXIgYWJhbmRvbiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHNjb3BlLm1vZGFsLmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgICAgICAkdGltZW91dCAoZnVuY3Rpb24oKSB7c2NvcGUubW9kYWwuZGVzdHJveSgpO30sIDEwMDApO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB2YXIgcmVhZGVyQ0IgPSBmdW5jdGlvbiAodXBsb2FkKSB7XG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBGaWxlIHVwbG9hZCBmYWlsIGhhbmRsZSBlcnJvclxuICAgICAgICAgICAgICAgIGlmICghIHVwbG9hZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFuZGxlLmZpbGUuc2l6ZSA+IHNjb3BlLm1heHNpemUqMTAyNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwaWNvbiA9IHNjb3BlLmlzdG9vYmlnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU9IHRtcGxFcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKGhhbmRsZS5maWxlLnNpemUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBpY29uID0gc2NvcGUuaXNub3R2YWxpZDsgXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZT0gdG1wbEVycm9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgemlwYXBwID0gbmV3IEpTWmlwICh1cGxvYWQudGFyZ2V0LnJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0aHVtYm5haWwgPSB6aXBhcHAuZmlsZShcImljb25fMTI4LnBuZ1wiKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpcyB3ZSBoYXZlIGEgdGh1bWJuYWlsIHdpdGhpbiBsb2FkZWQgWmlwZmlsZVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRodW1ibmFpbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cgKFwiVGhpcyBpcyBub3QgYSB2YWxpZCBBcHBsaWNhdGlvbiBGcmFtZXdvcmsgQVBQXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwaWNvbiA9IHNjb3BlLmlzbm90dmFsaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZT0gdG1wbEVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL3Njb3BlLmltZ0VsZW1bMF0uc3JjID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW3RodW1ibmFpbC5hc0FycmF5QnVmZmVyKCldLCB7dHlwZTogXCJpbWFnZVwifSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwaWNvbiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFt0aHVtYm5haWwuYXNBcnJheUJ1ZmZlcigpXSwge3R5cGU6IFwiaW1hZ2VcIn0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gdG1wbE1vZGFsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIHJlZmVyZW5jZSBodHRwOi8vZm91bmRhdGlvbi56dXJiLmNvbS9hcHBzL2RvY3MvIyEvYW5ndWxhci1tb2R1bGVzXG4gICAgICAgICAgICAgICAgdmFyIGNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uSW46ICdzbGlkZUluRnJvbVRvcCcsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRTY29wZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA6IHN1Y2Nlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBhYmFuZG9uIDogYWJhbmRvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb24gICAgOiBhcHBpY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbmFtZSA6IGhhbmRsZS5iYXNlbmFtZVxuICAgICAgICAgICAgICAgICAgICB9LCB0ZW1wbGF0ZSA6IHRlbXBsYXRlXG4gICAgICAgICAgICAgICAgfTsgXG4gICAgICAgICAgICAgICAgLy8gUG9wdXAgTW9kYWwgdG8gcmVuZGVyIGFwcGxpY2F0aW9uIGRhdGFcbiAgICAgICAgICAgICAgICBzY29wZS5tb2RhbCA9IG5ldyBNb2RhbEZhY3RvcnkoY29uZmlnKTtcbiAgICAgICAgICAgICAgICBzY29wZS5tb2RhbC5hY3RpdmF0ZSAoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIExvYWQgZmlsZSB3aXRoaW4gYnJvd3NlciBhbmQgaWYgT0sgY2FsbCByZWFkZXJDQlxuICAgICAgICAgICAgaGFuZGxlID0gbmV3IExvYWRGaWxlU3ZjIChzY29wZSwgZmlsZXMsIHJlYWRlckNCKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nIChoYW5kbGUpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEluaXRpYWxsaXplIGRlZmF1bHQgdmFsdWVzIGZyb20gYXR0cmlidXRlcyB2YWx1ZXNcbiAgICAgICAgc2NvcGUubmFtZT0gYXR0cnMubmFtZSB8fCAnYXBwbGknO1xuICAgICAgICBzY29wZS5jYXRlZ29yeT0gYXR0cnMuY2F0ZWdvcnkgIHx8ICdhcHBsaSc7XG4gICAgICAgIHNjb3BlLm1pbWV0eXBlPSAoYXR0cnMuYWNjZXB0IHx8ICcud2d0Jyk7XG4gICAgICAgIHNjb3BlLm1heHNpemUgPSBhdHRycy5tYXhzaXplIHx8IDEwMDAwMDsgLy8gZGVmYXVsdCBtYXggc2l6ZSAxMDBNQlxuICAgICAgICBzY29wZS5yZWdleHAgID0gbmV3IFJlZ0V4cCAoYXR0cnMuYWNjZXB0KyAnLionLCdpJyk7XG4gICAgICAgIHNjb3BlLmljb24gICAgPSBhdHRycy5pY29uIHx8ICdmaS11cGxvYWQnO1xuICAgICAgICBzY29wZS5sYWJlbCAgID0gYXR0cnMubGFiZWwgfHwgJ1VwbG9hZCc7XG4gICAgICAgIFxuICAgICAgICBpZiAoYXR0cnMudGh1bWJuYWlsKSBzY29wZS5pc25vdHZhbGlkPSBBcHBDb25maWcucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgIGF0dHJzLmlzbm90dmFsaWQ7XG4gICAgICAgIGVsc2UgIHNjb3BlLmlzbm90dmFsaWQ9QXBwQ29uZmlnLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICd3M2Mtd2lkZ2V0LnBuZyc7XG5cbiAgICAgICAgaWYgKGF0dHJzLmlzdG9vYmlnKSBzY29wZS5pc3Rvb2JpZz0gQXBwQ29uZmlnLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy5pc3Rvb2JpZztcbiAgICAgICAgZWxzZSAgc2NvcGUuaXN0b29iaWc9QXBwQ29uZmlnLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICdpc3Rvb2JpZy5wbmcnO1xuICAgICAgICBzY29wZS5ub3NsaWRlciA9IGF0dHJzLm5vc2xpZGVyIHx8IGZhbHNlO1xuXG4gICAgICAgIGlmICghYXR0cnMucG9zdHVybCkgdGhyb3cgbmV3IFR5cGVFcnJvcignZmlsZS11cGxvYWQgJXMgcG9zdHVybD0vYXBpL3h4eHgveHh4eCByZXF1aXJlZCcsIHNjb3BlLmF0dHJzKTsgICAgICAgICAgICBcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgdGVtcGxhdGU6IHRtcGxBcHBsaSxcbiAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgICAgY2FsbGJhY2sgOiAnPSdcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59XSk7XG5cbmNvbnNvbGUubG9nIChcIlVwbG9hZEZpbGUgTG9hZGVkXCIpO1xufSkoKTtcbiIsIlxuLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4uXG4gKi9cblxuXG5cbihmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxudmFyIHRtcGwgPSAnPHRpcC1tb2RhbCB0aXA9XCJ0aXBcIj48L3RpcC1tb2RhbD4nICtcbiAgICAgICAgICAgJzxsYWJlbCBmb3I9XCJ7e25hbWV9fS1pbnRleHRcIj57e2xhYmVsfX0gPGkgbmctc2hvdz1cInJlcXVpcmVkXCIgbmctY2xpY2s9XCJUb0JlRGVmaW5lZFwiICcgK1xuICAgICAgICAgICAnY2xhc3M9XCJyZXF1aXJlZCB7e3N0YXR1c319IGZpLWNoZWNrYm94XCIgdGl0bGU9XCJGcmVlIFZhbHVlIEJ1dCBNYW5kYXRvcnkgQXJndW1lbnRcIiBhbHQ9XCI/XCI+ICZuYnNwOyA8L2k+PC9sYWJlbD4nKyAgICAgICAgICBcbiAgICAgICAgICAgJzxpbnB1dCAnK1xuICAgICAgICAgICAnIHR5cGU9XCJ7e3R5cGV9fVwiIGlkPVwie3tuYW1lfX0taW50ZXh0XCIgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyfX1cIiAgY2xhc3M9XCJzdGF0dXMte3tzdGF0dXN9fVwiJytcbiAgICAgICAgICAgJyBuZy1tb2RlbD1cInZhbHVlXCIgbmctYmx1cj1cInZhbGlkYXRlKClcIiBuZy1mb2N1cz1cInNlbGVjdGVkKClcIiAnK1xuICAgICAgICAgICAnIG5nLW1vZGVsLW9wdGlvbnM9XCJ7IHVwZGF0ZU9uOiBcXCdkZWZhdWx0IGJsdXJcXCcsIGRlYm91bmNlOiB7ZGVmYXVsdDogNTAwLCBibHVyOiAwfSB9XCInICtcbiAgICAgICAgICAgJz48YWxlcnQgZGF0YS1uZy1zaG93PVwiIXZhbGlkJiZlcnJtc2dcIj57e2Vycm1zZ319PC9hbGVydD4nO1xuXG52YXIgZW1haWxwYXRlcm4gPSAvXigoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXSspKil8KFxcXCIuK1xcXCIpKUAoKFtePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl0rXFwuKStbXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdezIsfSkkL2k7XG5cbmFuZ3VsYXIubW9kdWxlKCdJbnB1dFRleHQnLFsnSlF1ZXJ5RW11J10pXG5cbi5kaXJlY3RpdmUoJ2lucHV0VGV4dCcsIFtcIkpRZW11XCIsIGZ1bmN0aW9uKEpRZW11KSB7XG4gICAgZnVuY3Rpb24gbXltZXRob2RzKHNjb3BlLCBlbGVtLCBhdHRycykge1xuICAgIFxuICAgIC8vIGRlZmF1bHQgdmFsdWUgYXQgMXN0IHJlbmRlcmluZ1xuICAgIHNjb3BlLmVycm9yICA9IGZhbHNlO1xuICAgIHNjb3BlLnZhbGlkICA9IGZhbHNlO1xuICAgIHNjb3BlLnN0YXR1cyA9ICd1bnRvdWNoJztcbiAgIFxuICAgIHNjb3BlLmlucHV0ID0gZWxlbS5maW5kIChcImlucHV0XCIpO1xuICAgIHNjb3BlLnJlcXVpcmVkID0gMDtcbiAgICBcbiAgICAvLyByZXF1aXJlciBpcyB1c2UgdG8gaW5jcmVtZW50IHJlcXVlc3RlZCBjb3VudGVyXG4gICAgaWYgKFwicmVxdWlyZWRcIiBpbiBhdHRycykge1xuICAgICAgICBzY29wZS5yZXF1aXJlZCA9IDE7XG4gICAgICAgIGVsZW0uYWRkQ2xhc3MgKFwicmVxdWlyZWRcIik7XG4gICAgfVxuICAgICAgIFxuICAgICAvLyB1c2VyIGVudGVyIGlucHV0IHJlc2V0IGVycm9yIHN0YXR1c1xuICAgICBzY29wZS5zZWxlY3RlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2NvcGUuZXJyb3I9ZmFsc2U7IFxuICAgICAgICBzY29wZS5lcnJtc2c9ZmFsc2U7IFxuICAgICAgICBzY29wZS5zdGF0dXMgPSAndG91Y2gnO1xuICAgICB9OyAgIFxuICAgICAgICAgICAgXG4gICAgIHNjb3BlLnZhbGlkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgXG4gICAgICAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dCBmaWVsZCBieXBhc3NpbmcgQW5ndWxhciBuZy1tb2RlbFxuICAgICAgICAgY29uc29sZS5sb2cgKFwiQ2xpY2tlZCBJbnB1dFRleHQgbmFtZT0lcyB2YWx1ZT0lcyB2YWxpZD0lc1wiLCBzY29wZS5uYW1lLCBzY29wZS52YWx1ZSwgc2NvcGUudmFsaWQpOyAgICAgICAgXG5cbiAgICAgICAgIC8vIGZvcm0gaXMgbm90IHVudG91Y2hlZCBhbnltb3JlXG4gICAgICAgICBzY29wZS5wYXJlbnQucmVtb3ZlQ2xhc3MgKFwibmctcHJpc3RpbmVcIik7XG5cbiAgICAgICAgIC8vIGlmIHZhbHVlIG5vdCBudWxsIGNsZWFuIHVwIHN0cmluZ1xuICAgICAgICAgaWYgKHNjb3BlLnZhbHVlKSB7XG4gICAgICAgICAgICAgc2NvcGUuZXJyb3I9ZmFsc2U7IFxuICAgICAgICAgICAgLy8gcmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsbGluZyBzcGFjZVxuICAgICAgICAgICAgc2NvcGUudmFsdWUgPSBzY29wZS52YWx1ZS50cmltKCk7XG4gICAgICAgICBcbiAgICAgICAgICAgIC8vIHJlbW92ZSBhbnkgc3BhY2UgaXMgbm90IGFsbG93ZWRcbiAgICAgICAgICAgIGlmICgnbm9zcGFjZScgaW4gYXR0cnMpIHtcbiAgICAgICAgICAgICAgIHNjb3BlLnZhbHVlPXNjb3BlLnZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJyk7ICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICAgXG4gICAgICAgICAgICBpZiAoJ2xvd2VyY2FzZScgaW4gYXR0cnMpIHtcbiAgICAgICAgICAgICAgIHNjb3BlLnZhbHVlID0gc2NvcGUudmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgIFxuICAgICAgICAgICAgLy8gY2hlY2sgbWluaW11bSBsZW5naHRcbiAgICAgICAgICAgIGlmIChcIm1pbmxlblwiIGluIGF0dHJzKSB7XG4gICAgICAgICAgICAgIGlmIChzY29wZS52YWx1ZS5sZW5ndGggPCBhdHRycy5taW5sZW4pIHtcbiAgICAgICAgICAgICAgICAgc2NvcGUuc3RhdHVzPSdpbnZhbGlkJztcbiAgICAgICAgICAgICAgICAgc2NvcGUuZXJybXNnPXNjb3BlLm5hbWUgKyAnOiBNaW5pbnVtIExlbmdoPSAnICsgYXR0cnMubWlubGVuICsgJyBDaGFyYWN0ZXJzJztcbiAgICAgICAgICAgICAgICAgc2NvcGUuZXJyb3I9dHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoJ2VtYWlsJyBpbiBhdHRycykge1xuICAgICAgICAgICAgaWYgKCFlbWFpbHBhdGVybi50ZXN0IChzY29wZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBzY29wZS5zdGF0dXM9J2ludmFsaWQnO1xuICAgICAgICAgICAgICAgIHNjb3BlLmVycm1zZz0naW52YWxpZCBlbWFpbCBhZGRyZXNzJztcbiAgICAgICAgICAgICAgICBzY29wZS5lcnJvcj10cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICAgICAgXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoc2NvcGUucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgc2NvcGUuc3RhdHVzPSdpbnZhbGlkJztcbiAgICAgICAgICAgICAgICAgc2NvcGUuZXJybXNnPXNjb3BlLm5hbWUgKyAnOiBSZXF1aXJlZCBBdHRyaWJ1dGUnO1xuICAgICAgICAgICAgICAgICBzY29wZS5lcnJvcj10cnVlOyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAvLyBJZiBsb2NhbCBjb250cm9sIGZhaWwgbGV0J3MgcmVmdXNlIGlucHV0XG4gICAgICAgICBpZiAoc2NvcGUuZXJyb3IpIHtcbiAgICAgICAgICAgICBpZiAoc2NvcGUucmVxdWlyZWQgJiYgc2NvcGUudmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgc2NvcGUudmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmw0YWNvdW50ZXIudmFsaWRhdGVkID4gMCkgc2NvcGUubDRhY291bnRlci52YWxpZGF0ZWQgLS07XG4gICAgICAgICAgICAgfSBcbiAgICAgICAgICAgICAvLyB1c2UgY2FsbCB0byB1cGRhdGUgZm9ybSBzY29wZSBvbiBmb3JtIGNvbXBsZXRlbmVzc1xuICAgICAgICAgICAgIHNjb3BlLmNhbGxiYWNrIChhdHRycy5uYW1lLCBudWxsLCBzY29wZS5kb25lKTtcbiAgICAgICAgIH0gZWxzZSB7IFxuICAgICAgICAgICAgIC8vIGxvY2FsY2hlY2sgaXMgT0sgYmFja3VwIG1heSBuZXZlcnRoZWxlc3MgY2hhbmdlIHN0YXR1cyB0byBmYWxzZVxuICAgICAgICAgICAgaWYgKHNjb3BlLnJlcXVpcmVkICAmJiAhc2NvcGUudmFsaWQpIHNjb3BlLmw0YWNvdW50ZXIudmFsaWRhdGVkICsrO1xuICAgICAgICAgICAgc2NvcGUuc3RhdHVzPSd2YWxpZCc7XG4gICAgICAgICAgICBzY29wZS52YWxpZD10cnVlO1xuICAgICAgICAgICAgc2NvcGUuY2FsbGJhY2sgKGF0dHJzLm5hbWUsIHNjb3BlLnZhbHVlLCBzY29wZS5kb25lKTtcbiAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgfTtcbiAgICAgXG4gICAgIC8vIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgZnJvbSBjb250cm9sbGVyIHRvIHVwZGF0ZSB3aWRnZXQgc3RhdHVzXG4gICAgIHNjb3BlLmRvbmU9ZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICBjb25zb2xlLmxvZyAoXCJUZXh0LUlucHV0IENhbGxiYWNrIElEPVwiKyBhdHRycy5uYW1lICsgXCIgZGF0YT1cIiwgZGF0YSk7XG4gICAgICAgZm9yICh2YXIgaSBpbiBkYXRhKSBzY29wZVtpXSA9IGRhdGFbaV07ICAgICAgICAgXG4gICAgIH07XG4gICAgIFxuICAgICAvLyBFeHBvcnQgc29tZSBhdHRyaWJ1dGVzIHdpdGhpbiBkaXJlY3RpdmUgc2NvcGUgZm9yIHRlbXBsYXRlXG4gICAgIHNjb3BlLmxhYmVsICAgICAgID0gYXR0cnMubGFiZWw7XG4gICAgIHNjb3BlLm5hbWUgICAgICAgID0gYXR0cnMubmFtZTtcbiAgICAgc2NvcGUucGxhY2Vob2xkZXIgPSBhdHRycy5wbGFjZWhvbGRlcjtcbiAgICAgc2NvcGUudHlwZSAgICAgICAgPSBhdHRycy50eXBlIHx8IFwidGV4dFwiO1xuICAgICBzY29wZS50aXAgICAgICAgICA9IGF0dHJzLnRpcDtcblxuICAgICAvLyBzZWFyY2ggZm9yIGZvcm0gd2l0aGluIHBhcmVudCBlbGVtbnRzXG4gICAgIHNjb3BlLnBhcmVudCA9IEpRZW11LnBhcmVudCAoZWxlbSwgXCJGT1JNXCIpO1xuXG4gICAgIC8vIGVtYWlsIGVuZm9yY2UgbG93ZXJjYXNlIGFuZCBub3NwYWNlICAgXG4gICAgIGlmIChcImVtYWlsXCIgaW4gYXR0cnMpIHtcbiAgICAgICAgYXR0cnMubG93ZXJjYXNlPXRydWU7IFxuICAgICAgICBhdHRycy5ub3NwYWNlPXRydWU7IFxuICAgICAgICBhdHRycy5taW5sZW49NjsgXG4gICAgIH1cblxuICAgICBpZiAoc2NvcGUucmVxdWlyZWQpIHtcbiAgICAgICAgIHNjb3BlLmw0YWNvdW50ZXIgPSBzY29wZS5wYXJlbnQuZGF0YSAoXCJsNGFjb3VudGVyXCIpO1xuICAgICAgICAgaWYgKCFzY29wZS5sNGFjb3VudGVyKSB7IFxuICAgICAgICAgICAgc2NvcGUubDRhY291bnRlciA9ICB7cmVxdWlyZWQ6MSwgdmFsaWRhdGVkOjB9O1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJGaWVsZCBcIitzY29wZS5uYW1lK1wiIGlzIHJlcXVpcmVkICgxc3QpXCIpO1xuICAgICAgICAgICAgc2NvcGUucGFyZW50LmRhdGEgKFwibDRhY291bnRlclwiLCBzY29wZS5sNGFjb3VudGVyKTsgXG4gICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRmllbGQgXCIrc2NvcGUubmFtZStcIiBpcyByZXF1aXJlZFwiKTtcbiAgICAgICAgICAgICBzY29wZS5sNGFjb3VudGVyLnJlcXVpcmVkICsrO1xuICAgICAgICAgfVxuICAgICB9XG4gICAgICAgICBcbiAgICAgLy8gcmVmcmVzaCB2YWxpZGF0aW9uIGVhY2ggdGltZSBjb250cm9sZXIgdXBkYXRlIHZhbHVlXG4gICAgIHNjb3BlLiR3YXRjaCAoJ3ZhbHVlJywgZnVuY3Rpb24oKXtcbiAgICAgICAgIGlmKHNjb3BlLnZhbHVlKSBzY29wZS52YWxpZGF0ZSgpOyB9XG4gICAgICk7XG4gICAgXG4gICAgfVxuICAgIFxuICAgIHJldHVybiB7XG4gICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICBjYWxsYmFjayA6ICc9JyxcbiAgICAgICAgICAgIHZhbHVlOiAnPSdcbiAgICAgICAgfVxuICAgIH07XG59XSk7XG5cbmNvbnNvbGUubG9nIChcIklucHV0VGV4dCBMb2FkZWRcIik7XG59KSgpO1xuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuXG4oZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbnZhciB0bXBsID0gJzxpbnB1dC10ZXh0ICBjbGFzcz1cInBhc3N3b3JkXCIgdGlwPVwie3t0aXAxfX1cIiAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlMX19XCInICtcbiAgICAgICAgICAgJ2xhYmVsPVwie3tsYWJlbDF9fVwiIGNhbGxiYWNrPVwidmFsaWQxXCIgbmFtZT1cInt7bmFtZX19LTFcIiB2YWx1ZT1cInBhc3MxXCIgcmVxdWlyZWQgbWlubGVuPVwie3ttaW5sZW59fVwiIHR5cGU9XCJwYXNzd29yZFwiID4nICtcbiAgICAgICAgICAgJzwvaW5wdXQtdGV4dD4nICsgXG4gICAgICAgICAgICc8aW5wdXQtdGV4dCAgY2xhc3M9XCJwYXNzd29yZFwiIHRpcD1cInRpcDJcIiAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlMn19XCInICtcbiAgICAgICAgICAgJ2xhYmVsPVwie3tsYWJlbDJ9fVwiIGNhbGxiYWNrPVwidmFsaWQyXCIgbmFtZT1cInt7bmFtZX19LTJcIiB2YWx1ZT1cInBhc3MyXCIgcmVxdWlyZWQgbWlubGVuPVwie3ttaW5sZW59fVwiIHR5cGU9XCJwYXNzd29yZFwiID4gJytcbiAgICAgICAgICAgJzwvaW5wdXQtdGV4dD4nO1xuXG5hbmd1bGFyLm1vZHVsZSgnSW5wdXRQYXNzd29yZCcsW10pXG5cbi5kaXJlY3RpdmUoJ2lucHV0UGFzc3dvcmQnLCBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgXG4gICAgc2NvcGUudmFsaWQxID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nIChcIkNsaWNrZWQgSW5wdXRQYXNzd29yZDEgbmFtZT0lcyB2YWx1ZT0lc1wiLCBuYW1lLCB2YWx1ZSk7ICAgICAgICBcbiAgICAgICAgc2NvcGUuZmlyc3Rwd2QgPSB2YWx1ZTtcbiAgICB9O1xuICAgIFxuICAgIHNjb3BlLnZhbGlkMiA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSwgZG9uZSkgeyAgICAgICAgXG4gICAgICAgIGNvbnNvbGUubG9nIChcIkNsaWNrZWQgSW5wdXRQYXNzd29yZDIgbmFtZT0lcyB2YWx1ZT0lc1wiLCBuYW1lLCB2YWx1ZSk7ICAgICAgICBcbiAgICAgICAgXG4gICAgICAgIC8vIGlmIGJvdGggcGFzc3dkIGVxdWFsIHRoZW4gY2FsbCBmb3JtIENCXG4gICAgICAgIGlmIChzY29wZS5maXJzdHB3ZCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICBkb25lKHt2YWxpZDogZmFsc2UsIHN0YXR1czogJ2ludmFsaWQnLCBlcnJtc2c6IFwiYm90aCBwYXNzd29yZCBzaG91bGQgbWF0Y2hcIn0pOyAgXG4gICAgICAgIH0gZWxzZSB7ICBcbiAgICAgICAgICBzY29wZS5jYWxsYmFjayAoYXR0cnMubmFtZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBcbiAgICAgfTtcbiAgICAgXG4gICAgIC8vIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgZnJvbSBjb250cm9sbGVyIHRvIHVwZGF0ZSB3aWRnZXQgc3RhdHVzXG4gICAgIHNjb3BlLmRvbmU9ZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICBjb25zb2xlLmxvZyAoXCJUZXh0LUlucHV0IENhbGxiYWNrIElEPVwiKyBhdHRycy5uYW1lICsgXCIgZGF0YT1cIiwgZGF0YSk7XG4gICAgICAgZm9yICh2YXIgaSBpbiBkYXRhKSBzY29wZVtpXSA9IGRhdGFbaV07ICAgICAgICAgXG4gICAgIH07XG4gICAgIFxuICAgICAvLyBFeHBvcnQgc29tZSBhdHRyaWJ1dGVzIHdpdGhpbiBkaXJlY3RpdmUgc2NvcGUgZm9yIHRlbXBsYXRlXG4gICAgIHNjb3BlLm5hbWUgICA9IGF0dHJzLm5hbWU7XG4gICAgIHNjb3BlLmxhYmVsMSA9IGF0dHJzLmxhYmVsIHx8ICdQYXNzd29yZCc7XG4gICAgIHNjb3BlLmxhYmVsMiA9IGF0dHJzLmxhYmVsIHx8ICdQYXNzd29yZCBWZXJpZmljYXRpb24nO1xuICAgICBzY29wZS5wbGFjZTEgPSBhdHRycy5wbGFjZWhvbGRlcjEgfHwgJ1VzZXIgUGFzc3dvcmQnO1xuICAgICBzY29wZS50aXAxICAgPSBhdHRycy50aXAgfHwgJ0Nob29zZSBhIFBhc3N3b3JkJztcbiAgICAgc2NvcGUucGxhY2UyID0gYXR0cnMucGxhY2Vob2xkZXIxIHx8ICdQYXNzd29yZCBWZXJpZmljYXRpb24nO1xuICAgICBzY29wZS50aXAyICAgPSBhdHRycy50aXAgICAgfHwgJ0NvbmZpcm1lIHlvdXIgUGFzc3dvcmQnO1xuICAgICBzY29wZS5taW5sZW4gPSBhdHRycy5taW5sZW4gfHwgMTA7XG4gICAgIFxuICAgICBpZiAoXCJyZXF1aXJlZFwiIGluIGF0dHJzKSBzY29wZS5yZXF1aXJlZCA9ICdyZXF1aXJlZCc7XG4gICAgICAgICBcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgdGVtcGxhdGU6IHRtcGwsXG4gICAgICAgIGxpbms6IG15bWV0aG9kcyxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgIGNhbGxiYWNrIDogJz0nLFxuICAgICAgICB9XG4gICAgfTtcbn0pO1xuXG5jb25zb2xlLmxvZyAoXCJJbnB1dFBhc3N3b3JkIExvYWRlZFwiKTtcbn0pKCk7XG4iLCIoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIFdBUk5JTkc6IG1ha2Ugc3VyZSB0aGFuIGFwcC9mcm9udGVuZC9zZXJ2aWNlcy9BcHBDb25maWcuanMgbWF0Y2ggeW91ciBzZXJ2ZXJcblxuLy8gbGlzdCBhbGwgcmVwZW5kZW5jaWVzIHdpdGhpbiB0aGUgcGFnZSArIGNvbnRyb2xlciBpZiBuZWVkZWRcbmFuZ3VsYXIubW9kdWxlKCdEYXNoYm9hcmRNb2R1bGUnLCBbJ1N1Ym1pdEJ1dHRvbicsICdUb2tlblJlZnJlc2gnLCAnQXBwbGlCdXR0b24nXSlcblxuICAuY29udHJvbGxlcignRGFzaGJvYXJkQ29udHJvbGxlcicsIFtcIkFwcENhbGxcIiwgXCJOb3RpZmljYXRpb25cIiwgZnVuY3Rpb24gKEFwcENhbGwsIE5vdGlmaWNhdGlvbikge1xuICAgICAgICB2YXIgc2NvcGUgPSB0aGlzOyAvLyBJIGhhdGUgSmF2YVNjcmlwdFxuICAgICAgICBzY29wZS51dWlkICAgPVwibm9uZVwiO1xuICAgICAgICBzY29wZS50b2tlbiAgPVwibm9uZVwiO1xuICAgICAgICBzY29wZS5zZXNzaW9uPVwibm9uZVwiO1xuICAgICAgICBzY29wZS5zdGF0dXMgPVwiZXJyLW5vXCI7XG4gICAgICAgIHNjb3BlLmFwcGxpSURzID1bXTsgLy8gYXJyYXkgdG8gaG9sZCBhcHBsaWNhdGlvbnMgSURcbiAgICAgICAgc2NvcGUuYXBwbGlTdG9yZT17fTsgLy8gYXJyYXkgdG8gaG9sZCBhcHBsaWNhdGlvbnMganNvbiBkZXNjcmlwdGlvblxuXG4gICAgICAgXG4gICAgICAgIHNjb3BlLkFwcGxpQ0IgPSBmdW5jdGlvbihhcHBsaUlELCBhY3Rpb24sIHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgLy8gQWN0aW9uIGlzIGRvbmUgd2l0aGluIFdpZGdldCBDb250cm9sbGVyIG9ubHkgdXBkYXRlIGRlYnVnIFVJIHpvbmVcbiAgICAgICAgICAgICAgICBzY29wZS5yZXF1ZXN0ICA9IGFjdGlvbjsgXG4gICAgICAgICAgICAgICAgc2NvcGUuZXJyY29kZSAgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEpIHNjb3BlLnJlc3BvbnNlID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHNjb3BlLkdldFJ1bm5hYmxlcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2cgKFwiRGFzaGJvYXJkIEdldFJ1bm5hYmxlc1wiKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQXBwQ2FsbC5nZXQgKFwiYWZtLW1haW5cIiwgXCJydW5uYWJsZXNcIiwgey8qcXVlcnkqL30sIGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlIGRlYnVnIFVJIHpvbmVcbiAgICAgICAgICAgICAgICBzY29wZS5yZXF1ZXN0ICA9IFwiL2FwaS9hZm0tbWFpbi9ydW5uYWJsZVwiOyBcbiAgICAgICAgICAgICAgICBzY29wZS5yZXNwb25zZSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICAgICAgc2NvcGUuZXJyY29kZSAgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIkhvb3AgR2V0UnVubmFibGUgZmFpbGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoaXMgaXMgYSB2YWxpZCByZXNwb25zZSBmcm9tIEJpbmRlclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhLnJlcXVlc3QuanR5cGUgIT09IFwiQUpCX3JlcGx5XCIgJiYgcmVzcG9uc2UuZGF0YS5yZXF1ZXN0LmFwaSAhPT0gXCJydW5uYWJsZXNcIikge1xuICAgICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uLmVycm9yICh7bWVzc2FnZTogXCJJbnZhbGlkIFJlc3BvbmQgdG8gL29wYS9hZm0tbWFpbi9ydW5uYWJsZSByZXNwb25zZS5kYXRhPVwiK3Jlc3BvbnNlLmRhdGEsIGRlbGF5OiA1MDAwfSk7IFxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBsb29wIG9uIHJ1bm5hYmxlIGFwcGxpY2F0aW9uIHRvIHByZXBhcmUgZm9yIGRpc3BsYXlcbiAgICAgICAgICAgICAgICB2YXIgIGFwcGxpSURzPVtdO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGlkeD0wOyBpZHggPCByZXNwb25zZS5kYXRhLnJlc3BvbnNlLmxlbmd0aDsgaWR4ICsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFwcGxpSURzW2lkeF0gPSByZXNwb25zZS5kYXRhLnJlc3BvbnNlIFtpZHhdLmlkO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5hcHBsaVN0b3JlIFtyZXNwb25zZS5kYXRhLnJlc3BvbnNlIFtpZHhdLmlkXSA9ICByZXNwb25zZS5kYXRhLnJlc3BvbnNlIFtpZHhdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzY29wZS5hcHBsaUlEcyA9IGFwcGxpSURzOyAvLyBhdm9pZCBwYXJ0aWFsIHVwZGF0ZSB0byBsaW1pdCBVSSByZWZyZXNoXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9KTsgICAgICAgICAgICBcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHNjb3BlLkZpbGVVcGxvYWRlZCA9IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2cgKFwiZmlsZSBVcGxvYWRlZFwiKTtcbiAgICAgICAgICAgIC8vIENhbm5vdCBkaXNwbGF5IHBvc3QgcmVzdWx0cyBhcyBHZXRSdW5uYWJsZSB3aWxsIG92ZXJsb2FkIHRoZW1cbiAgICAgICAgICAgIHNjb3BlLnJlcXVlc3QgID0gXCIvYXBpL2FmbS1tYWluL3J1bm5hYmxlXCI7IFxuICAgICAgICAgICAgc2NvcGUucmVzcG9uc2UgPSByZXNwb25zZS5oZWFkZXJzO1xuICAgICAgICAgICAgc2NvcGUuZXJyY29kZSAgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgbG9va3MgT0sgdXBkYXRlIGFwcCBsaXN0XG4gICAgICAgICAgICBzY29wZS5HZXRSdW5uYWJsZXMoKTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHNjb3BlLkF1dG9TdGFydCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIkF1dG9TdGFydCByZXF1ZXN0aW5nIEFwcHMgbGlzdFwiKTtcbiAgICAgICAgICAgIHNjb3BlLkdldFJ1bm5hYmxlcygpO1xuICAgICAgICB9O1xuICAgICAgICAgIFxuICAgfV0pO1xuXG5jb25zb2xlLmxvZyAoXCJEYXNoYm9hcmQgQ29udHJvbGxlciBMb2FkZWRcIik7XG59KSgpOyAiLCIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICogXG4gKiBVc2FnZTpcbiAqIFxuICogICAvLyBtb3VzZSBldmVudCBwcm9iYWJseSBwb2ludCBvbiBpY29uIGFuZCBub3Qgb24gYnV0dG9uIGRpdlxuICogICAuLi4gbmctY2xpY2s9XCJMb2NrQ2hhbm5lbCgkZXZlbnQpXG4gICAgIHZhciB0YXJnZXQ9IGFuZ3VsYXIuZWxlbWVudChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgdmFyIGJ1dHRvbj0gSlFlbXUuRmluZEluUGFyZW50ICh0YXJnZXQsICdkaXYnKTtcbiAqIFxuICovXG5cblxuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cblxuICAgICAgICAgIFxuICAgIC8vIF9hbGwgbW9kdWxlcyBvbmx5IHJlZmVyZW5jZSBkZXBlbmRlbmNpZXNcbiAgICBhbmd1bGFyLm1vZHVsZSgnSlF1ZXJ5RW11JywgW10pXG5cbiAgICAgICAgICAgIC8vIEZhY3RvcnkgaXMgYSBzaW5nbGV0b24gYW5kIHNoYXJlIGl0cyBjb250ZXh0IHdpdGhpbiBhbGwgaW5zdGFuY2VzLlxuICAgICAgICAgICAgLmZhY3RvcnkoJ0pRZW11JywgZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgdmFyIEZpbmRJblBhcmVudCA9IGZ1bmN0aW9uIChlbGVtZW50LCBzZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlYXJjaCA9IHNlbGVjdG9yLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChwYXJlbnRbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2ggPT09IHBhcmVudFswXS50YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gIC8vIEhUTUxEaXZFbGVtZW50IHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdmFyICBGaW5kQnlUYWc9IGZ1bmN0aW9uIChlbGVtZW50LCB0YWcsIHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWFyY2ggPSBzZWxlY3Rvci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgdHlwZSAgID0gdGFnLnRvTG93ZXJDYXNlKCkrIFwiTmFtZVwiO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSBlbGVtZW50LmNoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChjaGlsZHJlblswXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaCA9PT0gY2hpbGRyZW5bMF1bdHlwZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9ICAvLyBIVE1MRGl2RWxlbWVudCBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdmFyICBGaW5kQnlDbGFzcz0gZnVuY3Rpb24gKGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWFyY2ggPSBzZWxlY3Rvci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSBlbGVtZW50LmNoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChjaGlsZHJlblswXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuLmhhc0NsYXNzKHNlYXJjaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9ICAvLyBIVE1MRGl2RWxlbWVudCBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICB2YXIgbXlNZXRob2RzID0ge1xuICAgICAgICAgICAgICAgICAgICBGaW5kSW5QYXJlbnQ6IEZpbmRJblBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgRmluZEJ5VGFnOiBGaW5kQnlUYWcsXG4gICAgICAgICAgICAgICAgICAgIEZpbmRCeUNsYXNzOiBGaW5kQnlDbGFzc1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbXlNZXRob2RzO1xuICAgICAgICAgICAgfSk7XG5cbn0pKCk7IiwidmFyIGZvdW5kYXRpb25Sb3V0ZXMgPSBbe1wibmFtZVwiOlwiRGFzaGJvYXJkXCIsXCJ1cmxcIjpcIi9kYXNoYm9hcmRcIixcImNvbnRyb2xsZXJcIjpcIkRhc2hib2FyZENvbnRyb2xsZXIgYXMgY3RybFwiLFwiYW5pbWF0aW9uSW5cIjpcInNsaWRlSW5SaWdodFwiLFwicGF0aFwiOlwicGFnZXMvRGFzaGJvYXJkL0Rhc2hib2FyZC5odG1sXCJ9XTsgXG4iLCIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8vIF9hbGwgbW9kdWxlcyBvbmx5IHJlZmVyZW5jZSBkZXBlbmRlbmNpZXNcbiAgICBhbmd1bGFyLm1vZHVsZSgnQXBwQ29uZmlnJywgW10pXG4gICAgXG4gICAgICAgICAgICAvLyBGYWN0b3J5IGlzIGEgc2luZ2xldG9uIGFuZCBzaGFyZSBpdHMgY29udGV4dCB3aXRoaW4gYWxsIGluc3RhbmNlcy5cbiAgICAgICAgICAgIC5mYWN0b3J5KCdBcHBDb25maWcnLCBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyAoXCJVUkw9XCIrICRsb2NhdGlvbi51cmwoKSArIFwiIFF1ZXJ5PVwiICsgbG9jYXRpb24uaHJlZisgXCIgd2luZG93PVwiICsgZG9jdW1lbnQucmVmZXJyZXIpO1xuXG4gICAgICAgICAgICAgICAgdmFyIG15Q29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgcGF0aHM6IHsgLy8gV2FybmluZyBwYXRocyBzaG91bGQgZW5kIHdpdGggL1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UgOiAnaW1hZ2VzLycsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29ucyA6ICdpbWFnZXMvaWNvbnMvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjogJ2ltYWdlcy9hdmF0YXJzLycsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdWRpbyA6ICdpbWFnZXMvYXVkaW8vJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpIDogJ2ltYWdlcy9hcHBsaS8nXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBteWFwaTogeyAvLyBXYXJuaW5nIHBhdGhzIHNob3VsZCBlbmQgd2l0aCAvXG4gICAgICAgICAgICAgICAgICAgICAgIHRva2VuIDogJy9hcGkvbXlwbHVnaW4veHh4eCdcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb246IHsgLy8gVGhvc2UgZGF0YSBhcmUgdXBkYXRlZCBieSBzZXNzaW9uIHNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlICA6ICcvYXBpL3Rva2VuL2NyZWF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2ggOiAnL2FwaS90b2tlbi9yZWZyZXNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgY2hlY2sgICA6ICcvYXBpL3Rva2VuL2NoZWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgcmVzZXQgICA6ICcvYXBpL3Rva2VuL3Jlc2V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgcGluZyAgICA6ICcvYXBpL3Rva2VuL2NoZWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbCA6ICcxMjM0NTY3ODknLCAgLy8gdHlwaWNhbCBkZXYgaW5pdGlhbCB0b2tlblxuICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0IDogMzYwMCwgICAgICAgICAvLyB0aW1lb3V0IGlzIHVwZGF0ZWQgY2xpZW50IHNlc3NpbiBjb250ZXh0IGNyZWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIHBpbmdyYXRlOiA2MCwgICAgICAgICAgIC8vIFBpbmcgcmF0ZSB0byBjaGVjayBpZiBzZXJ2ZXIgaXMgc3RpbGwgYWxpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgdXVpZCAgICA6ICcnLCAgICAgICAgICAgLy8gdXVpZCBtYXAgd2l0aCBjb29raWUgb3IgbG9uZyB0ZXJtIHNlc3Npb24gYWNjZXNzIGtleVxuICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiAgIDogJycgICAgICAgICAgICAvLyB3aWxsIGJlIHJldHVybmVkIGZyb20gYXV0aGVudGljYXRpb24gICAgXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG15Q29uZmlnO1xuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgLy8gRmFjdG9yeSBpcyBhIHNpbmdsZXRvbiBhbmQgc2hhcmUgaXRzIGNvbnRleHQgd2l0aGluIGFsbCBpbnN0YW5jZXMuXG4gICAgICAgICAgICAuZmFjdG9yeSgnQXBwQ2FsbCcsIFtcIiRodHRwXCIsIFwiQXBwQ29uZmlnXCIsIGZ1bmN0aW9uICgkaHR0cCwgQXBwQ29uZmlnKSB7XG4gICAgICAgICAgICAgICAgdmFyIG15Q2FsbHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIGdldCA6IGZ1bmN0aW9uKHBsdWdpbiwgYWN0aW9uLCBxdWVyeSwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5LnRva2VuID0gQXBwQ29uZmlnLnNlc3Npb24udG9rZW47IC8vIGFkZCB0b2tlbiB0byBwcm92aWRlZCBxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgJGh0dHAuZ2V0KCcvYXBpLycgKyBwbHVnaW4gKyAnLycgKyBhY3Rpb24gLCB7cGFyYW1zOiBxdWVyeX0pLnRoZW4gKGNhbGxiYWNrLCBjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIG15Q2FsbHM7XG4gICAgICAgICAgICB9XSk7XG4gICAgXG4gXG59KSgpOyIsIihmdW5jdGlvbigpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGFuZ3VsYXIubW9kdWxlKCdBRkJjbGllbnQnLCBbIC8vIFdhcm5pbmc6IEFwcG5hbWUgc2hvdWxkIGZpdCB3aXRoIGd1bHBmaWxlLmpzICYgaW5kZXguaHRtbFxuICAgICd1aS5yb3V0ZXInLFxuICAgICduZ0FuaW1hdGUnLFxuXG4gICAgLy9mb3VuZGF0aW9uXG4gICAgJ2ZvdW5kYXRpb24nLFxuICAgICdmb3VuZGF0aW9uLmR5bmFtaWNSb3V0aW5nJyxcbiAgICAnZm91bmRhdGlvbi5keW5hbWljUm91dGluZy5hbmltYXRpb25zJyxcbiAgICBcbiAgICAvLyBleHRlcm5hbCBjb21wb25lbnRzXG4gICAgJ3VpLW5vdGlmaWNhdGlvbicsXG4gICAgXG4gICAgLy8gQXBwbGljYXRpb24gQ29tcG9uZW50c1xuICAgICdBcHBDb25maWcnLFxuICAgICdKUXVlcnlFbXUnLFxuICAgICdEYXNoYm9hcmRNb2R1bGUnLFxuICAgICdVcGxvYWRGaWxlcycsXG4gICAgJ0xpbmtCdXR0b24nLFxuICAgICdUb2tlblJlZnJlc2gnLFxuICAgICdSYW5nZVNsaWRlcicsXG4gICAgJ01vZGFsTm90aWZpY2F0aW9uJ1xuICBdKVxuICAgIC5jb25maWcoY29uZmlnKVxuICAgIC5ydW4ocnVuKVxuICA7XG5cbiAgY29uZmlnLiRpbmplY3QgPSBbJyR1cmxSb3V0ZXJQcm92aWRlcicsICckbG9jYXRpb25Qcm92aWRlciddO1xuICBcbiAgY29uc29sZS5sb2cgKFwiKioqbG9jYXRpb249XCIgKyB3aW5kb3cubG9jYXRpb24gKyBcIiBzZWFyY2hcIiArIHdpbmRvdy5zZWFyY2gpO1xuXG4gIGZ1bmN0aW9uIGNvbmZpZygkdXJsUHJvdmlkZXIsICRsb2NhdGlvblByb3ZpZGVyLCBBcHBDb25maWcpIHtcbiAgICAkdXJsUHJvdmlkZXIub3RoZXJ3aXNlKCcvZGFzaGJvYXJkJyk7XG5cbiAgICAvLyBodHRwczovL2RvY3MuYW5ndWxhcmpzLm9yZy9lcnJvci8kbG9jYXRpb24vbm9iYXNlXG4gICAgJGxvY2F0aW9uUHJvdmlkZXIuaHRtbDVNb2RlKHRydWUpLmhhc2hQcmVmaXgoJyEnKTtcbiAgICBcbiAgfVxuXG4gIGZ1bmN0aW9uIHJ1bigpIHtcbiAgICBGYXN0Q2xpY2suYXR0YWNoKGRvY3VtZW50LmJvZHkpO1xuICB9XG4gIFxuLy8gRm9uZGF0aW9uLWFwcC50ZW1wbGF0ZSBpcyBub3QgaW5jbHVkZWQgY29ycmVjdGx5IGJ5IGd1bHAgXG4vLyBJbmNsdWRlIGhlcmUgbWlzc2luZyB0ZW1wbGF0ZXMgZnJvbSBmb3VuZGF0aW9uLWFwcHMvZGlzdC9qcy9mb3VuZGF0aW9uLWFwcHMtdGVtcGxhdGVzLmpzXG5hbmd1bGFyLm1vZHVsZSgnZm91bmRhdGlvbicpLnJ1bihbJyR0ZW1wbGF0ZUNhY2hlJywgZnVuY3Rpb24oJHRlbXBsYXRlQ2FjaGUpIHtcbiAgJHRlbXBsYXRlQ2FjaGUucHV0KCdjb21wb25lbnRzL21vZGFsL21vZGFsLmh0bWwnLFxuICAgICc8ZGl2XFxuJyArXG4gICAgJyAgY2xhc3M9XCJtb2RhbC1vdmVybGF5XCJcXG4nICtcbiAgICAnICBuZy1jbGljaz1cImhpZGVPdmVybGF5KClcIj5cXG4nICtcbiAgICAnICA8YXNpZGVcXG4nICtcbiAgICAnICAgIGNsYXNzPVwibW9kYWxcIlxcbicgK1xuICAgICcgICAgbmctY2xpY2s9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCJcXG4nICtcbiAgICAnICAgIG5nLXRyYW5zY2x1ZGU+XFxuJyArXG4gICAgJyAgPC9hc2lkZT5cXG4nICtcbiAgICAnPC9kaXY+XFxuJyArXG4gICAgJycpO1xufV0pO1xuXG5jb25zb2xlLmxvZyAoXCJvcGE9QUZCY2xpZW50IExvYWRlZFwiKTtcbn0pKCk7XG4iLCIoZnVuY3Rpb24oKSB7YW5ndWxhci5tb2R1bGUoJ0FGQmNsaWVudCcpLnJ1bihbJyR0ZW1wbGF0ZUNhY2hlJywgZnVuY3Rpb24oJHRlbXBsYXRlQ2FjaGUpIHskdGVtcGxhdGVDYWNoZS5wdXQoJ3BhZ2VzL0Rhc2hib2FyZC9EYXNoYm9hcmQuaHRtbCcsXG4gICAgJzxoMz48aW1nIGNsYXNzPVwibG9nb1wiIHNyYz1cImltYWdlcy9sb2dvL3RyaXNrZWxfaW90X2J6aHgyNTAucG5nXCIgYWx0PVwiSW9ULmJ6aCBMb2dvXCIgc3R5bGU9XCJoZWlnaHQ6MTUwcHhcIj4gQXBwbGljYXRpb24gRnJhbWV3b3JrIE1hbmFnZXIgU2ltcGxlIENsaWVudDwvaDM+PGRpdiBjbGFzcz1cImJ1dHRvbi1ib3ggYm94LWNvbnRlbnRcIj48YXBwbGktYnV0dG9uIG5nLXJlcGVhdD1cImFwcGxpSUQgaW4gY3RybC5hcHBsaUlEc1wiIHN0b3JlPVwiY3RybC5hcHBsaVN0b3JlXCIgaGFuZGxlPVwie3thcHBsaUlEfX1cIiBjYWxsYmFjaz1cImN0cmwuQXBwbGlDQlwiPjwvYXBwbGktYnV0dG9uPjx1cGxvYWQtYXBwbGkgY2xhc3M9XCJpYnotcmlnaHRcIiBsYWJlbD1cIlVwbG9hZFwiIGljb249XCJmaS11cGxvYWRcIiBwb3N0dXJsPVwiL2FwaS9wb3N0L3VwbG9hZC1hcHBsaVwiIGNhbGxiYWNrPVwiY3RybC5GaWxlVXBsb2FkZWRcIiB0aXRsZT1cIlVwbG9hZCBBR0wgQXBwXCI+PC91cGxvYWQtYXBwbGk+PC9kaXY+PGRpdiBjbGFzcz1cIm1lc3NhZ2UtYm94IGJveC1jb250ZW50IHZlcnRpY2FsIGdyaWQtZnJhbWVcIj48ZGl2IGNsYXNzPVwicmVzcG9uc2VcIj48c3BhbiBjbGFzcz1cImdyaWQtY29udGVudCBub3Njcm9sbCByZXEge3tjdHJsLnN0YXR1c319XCI+cmVxPSB7e2N0cmwucmVxdWVzdH19PC9zcGFuPiA8c3BhbiBjbGFzcz1cImdyaWQtY29udGVudCBub3Njcm9sbCByZXMge3tjdHJsLnN0YXR1c319XCI+cmVzPSB7e2N0cmwucmVzcG9uc2V9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJncmlkLWNvbnRlbnQgbm9zY3JvbGwgc3RhdHVzIHt7Y3RybC5zdGF0dXN9fVwiPnN0YXR1cz0ge3tjdHJsLmVycmNvZGV9fTwvc3Bhbj48L2Rpdj48L2Rpdj48dG9rZW4tcmVmcmVzaCBhdXRvbG9nPVwidHJ1ZVwiIGNhbGxiYWNrPVwiY3RybC5BdXRvU3RhcnRcIj48L3Rva2VuLXJlZnJlc2g+Jyk7fV0pO1xufSkoKTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== diff --git a/afm-client/dist.prod/opa/images/appli/isnotvalid.png b/afm-client/dist.prod/opa/images/appli/isnotvalid.png new file mode 100644 index 0000000..ee2e0f5 Binary files /dev/null and b/afm-client/dist.prod/opa/images/appli/isnotvalid.png differ diff --git a/afm-client/dist.prod/opa/images/appli/istoobig.png b/afm-client/dist.prod/opa/images/appli/istoobig.png new file mode 100644 index 0000000..07dcc63 Binary files /dev/null and b/afm-client/dist.prod/opa/images/appli/istoobig.png differ diff --git a/afm-client/dist.prod/opa/images/appli/upload-appli.png b/afm-client/dist.prod/opa/images/appli/upload-appli.png new file mode 100644 index 0000000..3dbd9dd Binary files /dev/null and b/afm-client/dist.prod/opa/images/appli/upload-appli.png differ diff --git a/afm-client/dist.prod/opa/images/appli/w3c-widget.png b/afm-client/dist.prod/opa/images/appli/w3c-widget.png new file mode 100644 index 0000000..3bcf98a Binary files /dev/null and b/afm-client/dist.prod/opa/images/appli/w3c-widget.png differ diff --git a/afm-client/dist.prod/opa/images/audio/istoobig.png b/afm-client/dist.prod/opa/images/audio/istoobig.png new file mode 100644 index 0000000..c3b794b Binary files /dev/null and b/afm-client/dist.prod/opa/images/audio/istoobig.png differ diff --git a/afm-client/dist.prod/opa/images/audio/upload-music.png b/afm-client/dist.prod/opa/images/audio/upload-music.png new file mode 100644 index 0000000..5e0b309 Binary files /dev/null and b/afm-client/dist.prod/opa/images/audio/upload-music.png differ diff --git a/afm-client/dist.prod/opa/images/avatars/istoobig.jpg b/afm-client/dist.prod/opa/images/avatars/istoobig.jpg new file mode 100644 index 0000000..da0f255 Binary files /dev/null and b/afm-client/dist.prod/opa/images/avatars/istoobig.jpg differ diff --git a/afm-client/dist.prod/opa/images/avatars/istoobig.png b/afm-client/dist.prod/opa/images/avatars/istoobig.png new file mode 100644 index 0000000..c3b794b Binary files /dev/null and b/afm-client/dist.prod/opa/images/avatars/istoobig.png differ diff --git a/afm-client/dist.prod/opa/images/avatars/tux-admin.png b/afm-client/dist.prod/opa/images/avatars/tux-admin.png new file mode 100644 index 0000000..6ad950f Binary files /dev/null and b/afm-client/dist.prod/opa/images/avatars/tux-admin.png differ diff --git a/afm-client/dist.prod/opa/images/avatars/tux-bzh.png b/afm-client/dist.prod/opa/images/avatars/tux-bzh.png new file mode 100644 index 0000000..e2cd262 Binary files /dev/null and b/afm-client/dist.prod/opa/images/avatars/tux-bzh.png differ diff --git a/afm-client/dist.prod/opa/images/avatars/tux-visitor.png b/afm-client/dist.prod/opa/images/avatars/tux-visitor.png new file mode 100644 index 0000000..0569822 Binary files /dev/null and b/afm-client/dist.prod/opa/images/avatars/tux-visitor.png differ diff --git a/afm-client/dist.prod/opa/images/icons/annex-ico.png b/afm-client/dist.prod/opa/images/icons/annex-ico.png new file mode 100644 index 0000000..234d29a Binary files /dev/null and b/afm-client/dist.prod/opa/images/icons/annex-ico.png differ diff --git a/afm-client/dist.prod/opa/images/icons/memorymatch-ico.png b/afm-client/dist.prod/opa/images/icons/memorymatch-ico.png new file mode 100644 index 0000000..85c9344 Binary files /dev/null and b/afm-client/dist.prod/opa/images/icons/memorymatch-ico.png differ diff --git a/afm-client/dist.prod/opa/images/icons/rabbit-ico.png b/afm-client/dist.prod/opa/images/icons/rabbit-ico.png new file mode 100644 index 0000000..be387d2 Binary files /dev/null and b/afm-client/dist.prod/opa/images/icons/rabbit-ico.png differ diff --git a/afm-client/dist.prod/opa/images/icons/w3c-ico.png b/afm-client/dist.prod/opa/images/icons/w3c-ico.png new file mode 100644 index 0000000..70b9d96 Binary files /dev/null and b/afm-client/dist.prod/opa/images/icons/w3c-ico.png differ diff --git a/afm-client/dist.prod/opa/images/login/fb-logo.png b/afm-client/dist.prod/opa/images/login/fb-logo.png new file mode 100644 index 0000000..acae14d Binary files /dev/null and b/afm-client/dist.prod/opa/images/login/fb-logo.png differ diff --git a/afm-client/dist.prod/opa/images/login/gg-logo.png b/afm-client/dist.prod/opa/images/login/gg-logo.png new file mode 100644 index 0000000..a2a84ee Binary files /dev/null and b/afm-client/dist.prod/opa/images/login/gg-logo.png differ diff --git a/afm-client/dist.prod/opa/images/login/gh-logo.png b/afm-client/dist.prod/opa/images/login/gh-logo.png new file mode 100644 index 0000000..0ecb071 Binary files /dev/null and b/afm-client/dist.prod/opa/images/login/gh-logo.png differ diff --git a/afm-client/dist.prod/opa/images/login/iot-logo.png b/afm-client/dist.prod/opa/images/login/iot-logo.png new file mode 100644 index 0000000..3fea4f8 Binary files /dev/null and b/afm-client/dist.prod/opa/images/login/iot-logo.png differ diff --git a/afm-client/dist.prod/opa/images/login/lk-logo.png b/afm-client/dist.prod/opa/images/login/lk-logo.png new file mode 100644 index 0000000..11ae020 Binary files /dev/null and b/afm-client/dist.prod/opa/images/login/lk-logo.png differ diff --git a/afm-client/dist.prod/opa/images/login/ms-logo.png b/afm-client/dist.prod/opa/images/login/ms-logo.png new file mode 100644 index 0000000..64cd877 Binary files /dev/null and b/afm-client/dist.prod/opa/images/login/ms-logo.png differ diff --git a/afm-client/dist.prod/opa/images/login/og-logo.png b/afm-client/dist.prod/opa/images/login/og-logo.png new file mode 100644 index 0000000..8827fb5 Binary files /dev/null and b/afm-client/dist.prod/opa/images/login/og-logo.png differ diff --git a/afm-client/dist.prod/opa/images/login/pp-logo.png b/afm-client/dist.prod/opa/images/login/pp-logo.png new file mode 100644 index 0000000..3300618 Binary files /dev/null and b/afm-client/dist.prod/opa/images/login/pp-logo.png differ diff --git a/afm-client/dist.prod/opa/images/login/yh-logo.png b/afm-client/dist.prod/opa/images/login/yh-logo.png new file mode 100644 index 0000000..40c3148 Binary files /dev/null and b/afm-client/dist.prod/opa/images/login/yh-logo.png differ diff --git a/afm-client/dist.prod/opa/images/logo/logo_iot_bzh.svg b/afm-client/dist.prod/opa/images/logo/logo_iot_bzh.svg new file mode 100644 index 0000000..e37a9f3 --- /dev/null +++ b/afm-client/dist.prod/opa/images/logo/logo_iot_bzh.svg @@ -0,0 +1 @@ +IOTBZH \ No newline at end of file diff --git a/afm-client/dist.prod/opa/images/logo/logo_iot_bzhx350.png b/afm-client/dist.prod/opa/images/logo/logo_iot_bzhx350.png new file mode 100644 index 0000000..2bee568 Binary files /dev/null and b/afm-client/dist.prod/opa/images/logo/logo_iot_bzhx350.png differ diff --git a/afm-client/dist.prod/opa/images/logo/tampon-iot-bzhx450.png b/afm-client/dist.prod/opa/images/logo/tampon-iot-bzhx450.png new file mode 100644 index 0000000..44e04e5 Binary files /dev/null and b/afm-client/dist.prod/opa/images/logo/tampon-iot-bzhx450.png differ diff --git a/afm-client/dist.prod/opa/images/logo/triskel_iot_bzh.png b/afm-client/dist.prod/opa/images/logo/triskel_iot_bzh.png new file mode 100644 index 0000000..a921f1b Binary files /dev/null and b/afm-client/dist.prod/opa/images/logo/triskel_iot_bzh.png differ diff --git a/afm-client/dist.prod/opa/images/logo/triskel_iot_bzh.svg b/afm-client/dist.prod/opa/images/logo/triskel_iot_bzh.svg new file mode 100644 index 0000000..9ec086c --- /dev/null +++ b/afm-client/dist.prod/opa/images/logo/triskel_iot_bzh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/afm-client/dist.prod/opa/images/logo/triskel_iot_bzhx250.png b/afm-client/dist.prod/opa/images/logo/triskel_iot_bzhx250.png new file mode 100644 index 0000000..b7c7db1 Binary files /dev/null and b/afm-client/dist.prod/opa/images/logo/triskel_iot_bzhx250.png differ diff --git a/afm-client/dist.prod/opa/index.html b/afm-client/dist.prod/opa/index.html new file mode 100644 index 0000000..6727a95 --- /dev/null +++ b/afm-client/dist.prod/opa/index.html @@ -0,0 +1,3 @@ +Simple Sample Application
\ No newline at end of file -- cgit 1.2.3-korg